Excel やスプレッドシートで時間を奪われていませんか?
業務システム・業務ツールの移行を一緒に進めてもらえる JBI にご相談ください
~作業時間を10分の1に、人生の充足時間を10倍に~ 担当者ながにぃ情報▶

【中級以上向け】前月の1日を算出するなど、月末月初を算出する

中級以上向けの、スクールでは教えてくれない、かゆい所に手が届くシリーズです。




本ページでは次のことが書かれています。
  • 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計算は便利で面白いと思いませんか?ヾ(*´∀`*)ノ

是非お試しください♪








今日も良い一日を♪










SHARE

Japan Bit Innovation

  • Image
  • Image
  • Image
  • Image
  • Image
    Blogger Comment
    Facebook Comment

FileMaker&個人的Post