年度の集計をしたいというか特定の日付の期間を取り出したい
AppSheetさんなんだかよくわからないよ。。。
例えば2022年度(4月1日から翌年3月31日まで)
AND(
[実施日]>="2022/04/01",
[実施日]<"2023/04/01"
)
結果はまあワカル
次はコレ
AND(
[実施日]>=DATE("4/1/"&YEAR([実施日])),
[実施日]<"2023/04/01"
)
結果はコレ これもワカル
問題はコレ
AND(
[実施日]>=DATE("4/1/"&YEAR([実施日])),
[実施日]
問題はどこにある?
[実施日]
これが日付を正しく表してない可能性を調べてみたら、これが正しい
こりゃバグですね
おそらく日本の年月日表記と、欧米の月日年表記の違いを吸収してないのでは?とエスパー
念の為、年月日表記と月日年表記を混在させてみる
AND(
[実施日]>"04/01/2022",
[実施日]<"2023/04/01"
)
エラーも出ず、正しく計算される。。。ますますワケガワカラナイヨ
どうもAND内の2行目が怪しい気がする
AND(
[実施日]>"04/01/2022",
[実施日]
エラーは出ないが、結果がおかしい
AND(
[実施日]"04/01/2022"
)
入れ替えてみた これもエラーは出ないが結果がおかしい
となると、
DATE("4/1/"&YEAR([実施日]+1))
単体では正しい式もANDに入れると結果の不備を引き起こすということ
では、結果が正しい式
AND(
[実施日]>=DATE("4/1/"&YEAR([実施日])),
[実施日]<"2023/04/01"
)
これをANDの2行目を入れ替えてみる
AND(
[実施日]<"2023/04/01",
[実施日]>=DATE("4/1/"&YEAR([実施日]))
)
エラーでない、結果も正しい
となると、
[実施日]
この式はANDの中では使えないということ
AppSheetではこの場合の回避方法がある
TEXT()で包んじゃう方法である
TEXT()
めんどくさくなりそうだなぁと思っていたらひらめいた!
1年足すのをやめて365日足してみよう!
できそうである しかし、うるう年が。。。。
うるう年については後で考えることにする というわけで正解は
AND(
[実施日]>=DATE("4/1/"&YEAR([実施日])),
[実施日]<=DATE("3/31/"&YEAR([実施日]))+365
)
これや!!
それにしてもうるう年はAppSheet内部で処理してほしいよスティーブ。。。
忘れそうなのでメモ うるう年は英語でleap year
MOD( YEAR( TODAY() ) , 4 ) = 0
これをIFSで実装する(多分しない)
ちょっと役に立ちそうなコミュニティの質問