みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
win7 FM11使用しています。
初心者すぎて計算式がわからず困っています。
いろいろ調べたのですがたどりつけませんでした。
工事の完成日が、何年度になるかを自動で表記したいです。
9/1~翌年8/31が年度期間になります。
たとえば、
2017/3/10であれば、2016年度になります。
完成日、完成年度のフィールドをつくりました。完成日はカレンダーから手動で選びます。
それを選ぶと完成年度が自動で何年度か入るようにしたいです。
どなたか計算式をご教授願えませんでしょうか。
宜しくお願い致します。
Offline
分かりやすいロジックを、、
日付から年を日付関数
Year
で求められます。
完成日が8月31日以前なら、
年から1を引く。
月・日は日付関数
Month
Day
で求められます。
日付関数のヘルプです。
14ですが、11でも同じです。
http://www.filemaker.com/help/14/fmp/ja … html#85118
計算式を作ってみてください。
Offline
チポ様
早々ありがとうございます。
申し訳ございません。本当に初心者でお恥ずかしい…
そもそも計算式の組立方もわかっておらず、演算子の記号もひとつづつ何を意味しているかもしらべましたが、
それをどの順で入れたりすればいいのかわかっておりません。
他をみてると、;や(が何重にも重なっているようで。
もう少しヒントをいただけないでしょうか。
宜しくお願い致します。
Offline
私も1昨年から初めてfilemaker を手にしました。最初は、市販されているFilemakerスーパーリファレンス等の入門書籍でサンプルを使いながら、書く場所とか流れを確認しながらしないとわからないと思います。
詳しい方が、返答くださっても、用語やどこで設定するのとか全く理解できないとおもいます。
Offline
完成年度のフィールドへの計算式は
Year ( 工事完成日 + 122 ) -1
で年度が求められます。
Last edited by やまほん (2017-03-10 20:23:27)
Offline
試しに、、
完成日の年を取り出してみましょう。
計算フィールドを作り、かりに「年」とします。
計算式の指定窓で、
右上の関数一覧から
Year ( 日付 )
をダブルクリックすると下の大きな計算式入力欄にそれが入力されます。
このとき、カッコ内の「日付」がハイライトされていますからそのまま、
左上のフィールド一覧の中から「完成日」をダブルクリック。
これで、日付のところに完成日が入力されましたね。
その下の
「計算結果」
は数字のまま、その他もデフォルトのままで「OK」をクリックします。
ブラウズ画面に戻って、「年」フィールドが配置されていなければレイアウトモードで配置、
フィールドの値を確認します。
完成日の年が入力されていればOKです。
ここまでやってみましょう。
Offline
naaak様
ご指摘ありがとうございます。
そうですね、ベースがないのに答えだけ求めて理解はできないと思います。
これからがんばって勉強しようと思います。
Offline
やまほん様・チポ様
ありがとうございます。
とりあえず、計算式を入れてみたのですが、一つ疑問があります。
一度、完成日をカレンダーから選択した時点では完成年度はその年数になるのですが、
年数を入れ間違えたとして、カレンダーを選びなおしても完成年度は変更されません。
入力値の制限で、常時を選択しているのですが…。
完成年度を削除したのち、完成日を選択すれば入りました。
これは毎回この作業がいるのでしょうか??
やまほん様の122はどのように出る値なのでしょうか?
チポ様ここまでは問題なくできました。
Offline
どなたかが書き込むかと思いましたが。。
122
は9/1から12/31までの日数です。
計算フィールドにしていますか?
Year
はできたんですね。
ではもう一つ、
計算フィールド「月日」の計算式
Month ( 完成日 ) * 100 + Day ( 完成日 )
を作ってみてください。
mmdd
の値が得られましか?
Offline
チポ様
早々のご返事ありがとうございます。
計算フィールドにしています。
月日は313と出ましたがあっていますか?
Offline
> 月日は313と出ました
今日ならそれであっていますね。
これと、8/31 = 831とを比較して、
月日が小さければ年より1を引く、
それが求める年度です。
式を作ってみてください。
Offline
チポ様
お世話になっております。
計算式はさっぱりで完成できません…。
先程作った年と月日のフィールドはそのまま使用するのでしょうか?
あと、やはり完成日を変更しても年と月日も数値は変更されません。
他に考えられる原因はありますでしょうか?
宜しくお願い致します。
Offline
データベース管理のフィールド定義で、
「タイプ:」
を
計算
としていますか?
大小の比較は
月日 ≤ 831
この式で、
年月が
8/31以前なら1を
9/1以降なら0を
返します。
ですからこの式を年から引けばいいですね。
年 - ( 月日 ≤ 831)
この年・月日はフィールドとして特に必要ないですから、
そこを直接計算式に出来ます。
Offline
チポ様
お世話になっております。
計算ではなく、日付になっていました。
ありがとうございます。
年月が
8/31以前なら1を
9/1以降なら0を
返します。
の意味がわかりません。
本当にすみません。
自分でもちょっと理解力が低すぎて反省しています。
とりあえず、Month ( 完成日 ) * 100 + Day ( 完成日 ) ≤ 831までつくりました
Offline
> Month ( 完成日 ) * 100 + Day ( 完成日 ) ≤ 831までつくりました
これをフィールドにしてみて、
完成日を8/31前後に変えてみるとお分かりになるかと思いますよ。
Offline
チポ様
お世話になっております。
1と0になるのはわかりました。
それで、1=Year(完成日--1)と0=Year(完成日-0)を結果に結びつけたらいいのかがわかりません。
本当に何度もすみません。
この部分の関連付けも教えていただけますでしょうか?
宜しくお願い致します。
Offline
>1=Year(完成日--1)と0=Year(完成日-0)
ではないですよ。
Year ( 完成日 )
か
Year ( 完成日 ) -1
になる様にするのです。
> Month ( 完成日 ) * 100 + Day ( 完成日 ) ≤ 831
これが0か1を返すのですよね。
Offline
チポ様
お世話になっております。
先日の質問ですが、質問の仕方が悪かったようです。すみません。
この
Month ( 完成日 ) * 100 + Day ( 完成日 ) ≤ 831
の式で、完成日の日によって、「1」もしくは「0」が表示されることは認識できていますが、
2017/9/7が「0」ではなく「2017」、2017/8/10が「1」ではなく「2016」と表示させる結果にむすびつければよいのか教えていただけないでしょうか。
宜しくお願い致します。
何度も何度も申し訳ございません。
Offline
その質問の通りと理解していますよ。
前に
> 年 - ( 月日 ≤ 831)
とお答えしています。
年と月日
の求め方も提示してあります。
Offline
チポ様
なんとかこの部分の完成することができました。
理解力ない私に根気よく付き合っていただきありがとうございました。
Offline
Pages: 1
[ Generated in 0.014 seconds, 8 queries executed - Memory usage: 559.37 KiB (Peak: 580.27 KiB) ]