本ページでは次のことが書かれています。
- FileMakerは日付で検索することが多い
- 前月の1日を算出する方法
- Date関数の解説
- 年またぎはどうなるのか?
- 月末を算出する
- まとめ
FileMakerは日付で検索することが多い
勤務実態調査や、製品管理調査のときなど、FileMakerで日付を指定してデータを検索・抽出することがよくあります。
いや、もうとにかく、それら以外でも日付で検索って本当に多いと思います。
その時、前月の1日を出すためにどうしているでしょうか?
検索する際には、日付フィールドに「2018/8/1...2018/9/30」などのように範囲で指定すると思います。
「2018/9/30」といった月末についてはなんとかなるものの、前月の1日ってどうやって算出するのでしょう??(月末ってどうやって算出するんだ?と思った方は本ページの最後へ)
前月の1日を算出する方法
正解は、
Date関数を使う、です。
まあ、正解と言いましても、正解なんてたくさんあるので、僕が思う一番スマートな算出方法、と言った方が正しいでしょう。
Date ( Month ( Get ( 日付 ) ) - 1 ; 1 ; Year ( Get ( 日付 ) ) )
これだけで前月の1日を算出できます。
一応、関数の中身をひとつひとつ解説しておきましょう。
Date関数の解説
まずDate関数は、「Date ( 月 ; 日 ; 年 )」という形でした。
月(引数といいます)には、Month関数を使っています。
「Month ( 日付 )」という形ですが、日付には「Get ( 日付 )」というさらに関数を使っています。
「Get ( 日付 )」は、今日の日付を取得します。
おや?「Month ( Get ( 日付 ) )」の後ろに「 - 1 」というのが付いていますね。
それは月からマイナス1しているということですね。
まとめてみると、
Month ( Get ( 日付 ) ) - 1 = 今日の月(つまり今月)の前月
ということになります。
同じく「Year ( Get ( 日付 ) )」は、今日の年(つまり今年)ということになります。
日本語ですべて書いてみましょうか。
Date ( Month ( Get ( 日付 ) ) - 1 ; 1 ; Year ( Get ( 日付 ) ) )
↓
<翻訳>
Date ( 今日の月(つまり今月)の前月 ; 1日 ; 今日の年(つまり今年) )
となります。
年またぎはどうなるのか?
ところで、上記Date関数で疑問が湧いてきますか?
もし疑問が湧いていたなら、なかなか鋭いですね!
もし今が1月だったらどうなるのか?という疑問です。
仮に今日が1/31だったとしましょう。
Get ( 日付 ) には2019/1/31が入ってきます。
その時、上述のDate関数ではどのように取得されるのでしょうか。
Date ( Month ( Get ( 日付 ) ) - 1 ; 1 ; Year ( Get ( 日付 ) ) )
↓
Date ( 0 ; 1 ; 2019 )
数字上、1からマイナス1すると0ですから。
「0月」って有り得ないですよね。
じゃあどうすればいいの!?
IF文とか使って1月だったら、とかやらないといけないの??
ご安心ください!
なんとFileMakerは自動で計算してくれるのです。
分かりやすいように、カスタムダイアログボックスを使って検証してみます。
Date ( 0 ; 1 ; 2019 ) とカスタムダイアログで指定します。
実行してみます。
はい、自動で日付を計算してくれました。
0月は12月にして、2019年はちゃんと2018年になっています。
では、関数だけで試してみましょう。
Date ( Month ( Get ( 日付 ) ) - 1 ; 1 ; Year ( Get ( 日付 ) ) )
実行してみます。
本投稿をしたのが2018年9月13日ですから、前月の1日は2018年8月1日になり、合っています。
月末を算出する
ところで月末はどうやって算出するのでしょうか?
これも色々方法はあると思いますが、僕が考える一番スマートな方法はこちらです。
Date ( Month ( Get ( 日付 ) ) + 1 ; 1 ; Year ( Get ( 日付 ) ) ) - 1
少し解説すると、翌月から1日マイナスすると月末が出る、という計算です。こんな方法で月末を出せるんですね。FileMakerって面白いです♪
ちなみにこんな方法もあります。
Date ( Month ( Get ( 日付 ) ) + 1 ; 0 ; Year ( Get ( 日付 ) ) )
前月1日の算出でも出てきた「0」を使います。「0」が分かりづらい場合は「1 - 1」でもOKです。
まとめ
いかがでしたでしょうか。
FileMakerのDate計算は便利で面白いと思いませんか?ヾ(*´∀`*)ノ
是非お試しください♪
今日も良い一日を♪
Blogger Comment
Facebook Comment