記事番号:01055
DATE_FORMAT関数やIF関数を設定することで、うるう年を考慮してNヶ月後の日付を計算することができます。
ここでは、うるう年を考慮して1ヶ月後の日付を計算する場合の方法を説明します。
○準備
アプリ設定のフォームで以下のフィールドを配置し、それぞれにフィールド名とフィールドコード、計算式を設定します。
- 日付フィールド
・フィールド名/フィールドコード:日付
- 計算フィールド
・フィールド名/フィールドコード:年
・計算式:DATE_FORMAT(日付, "YYYY", "system")
・表示形式:数値(例:1000)
- 計算フィールド
・フィールド名/フィールドコード:月
・計算式:DATE_FORMAT(日付, "M", "system")
・表示形式:数値(例:1000)
- 計算フィールド
・フィールド名/フィールドコード:日
・計算式:DATE_FORMAT(日付, "d", "system")
・表示形式:数値(例:1000)
- 文字列(1行)フィールド
・フィールド名/フィールドコード:うるう年判定
・計算式:IF(OR(年/4-ROUNDDOWN(年/4)!=0,
AND(年/100-ROUNDDOWN(年/100)=0,
年/400-ROUNDDOWN(年/400)!=0)),
"平年","うるう年")
- 文字列(1行)フィールド
・フィールド名/フィールドコード:翌月表示
・計算式:IF(日付="","",
IF(月=12,年+1&"年1",年&"年"&月+1)&"月"&
IF(AND(月=1,日>=29,うるう年判定="うるう年"),"29",
IF(AND(月=1,日>=29,うるう年判定="平年"),"28",
IF(AND(OR(月=3,月=5,月=8,月=10),日=31),"30",日)))
&"日")
※「年」「月」「日」「うるう年判定」フィールドは、フィールドのアクセス権を設定することで、非表示とすることも可能です。
フィールドのアクセス権を設定しても、「翌月表示」フィールドは正しく計算されます。
フィールドにアクセス権を設定する
○計算式の解説
-
「うるう年判定」フィールドでは、「年」フィールドの値に応じて「平年」または「うるう年」のどちらかが表示されます。
「平年」と「うるう年」のどちらに当てはまるかは、法令上の取扱いを元に算出しています。
詳細は、参議院法制局の次のページを参照してください。
うるう年をめぐる法令
・西暦が4で割り切れる年は「うるう年」とする
・西暦が100で割り切れて、400で割り切れない年は、「平年」とする -
「翌月表示」フィールドでは、「日付」フィールドの値に応じて表示する日付を計算します。
・末日を指定した場合は、次の挙動になります。
- その日にちが存在する場合:翌月の同日を表示します。
- その日にちが存在しない場合:翌月の末日を表示します。
・1月29日/30日/31日のいずれかの場合は、「平年」だと2月28日、「うるう年」だと2月29日を表示します。
[IF関数]条件によって表示する値を変える
固定リンクをコピーします
固定リンクがコピーされました