一定期間のデータの抽出(スライス)
業務管理にappsheetを活用しているとこういう機能が必要になってくると思います。
スライス機能では【Row filter condition】に関数を設定することで、
データの抽出が可能です。
例えば、進捗管理をするために進捗のColumnsを作成し、
予定・対応中・完了のような進捗管理をする場合。
完了した業務は表示であれば、
[進捗] <> "完了"
と関数を入力することで実現することができます。
簡単ですね!
この関数は、『進捗』というカラムのデータが『完了』ではないという条件
を示す関数となります。
※ <>はイコールの否定です。
話が少し逸れましたが、同様に本題の一定期間のみ表示したい場合の関数です。
基本的には当日の日付を元にすることになると思います。
例えば、今日から前後1か月のデータのみ抽出をしたい場合です。
※以下の記載は厳密には1か月ではなく、30日です。
AND(
HOUR( [日付] - TODAY() ) / 24 < 30,
HOUR( [日付] - TODAY() ) / 24 > -30
)
この関数についての説明です。
『AND()』の関数は、括弧内に記載して関数を全て満たす場合という関数です。
日付の差が30より大きいか、小さいかの条件を設定しています。
ここでポイントですが、appsheetで日数の差等を計算する場合は
『HOUR()』関数を使用します。
上記の関数では、『日付』というColumnan(TypeはDate)と
当日の日付(TODAY())の差をHOUR()関数で換算し、
24時間で割ることで日数を算出することができます。
これはこの形で覚えてしまう方がいいかなと思いますね。
考え方としては難しくはないと思いますので、一度知ってしまえば簡単だと思います。
また、少し応用例として。
毎月の定例業務ではなく、年間の定例業務に関して管理をしたい。
そういう場合に全ての業務をappsheet内に登録をし、
翌年以降も予定が近づいた場合に自動的に表示をしたいときは
以下のようにするといいかと思います。
※実際に私が作成した社内の業務管理アプリでも使用もしています。
IF(
YEAR( [日付] ) >= YEAR( TODAY() ),
AND(
HOUR( [日付] - TODAY() ) / 24 < 30,
HOUR( [日付] - TODAY() ) / 24 > -30
),
AND(
HOUR( [日付] - TODAY() ) / 24 + 365 < 30,
HOUR( [日付] - TODAY() ) / 24 + 365 > -30
),
)
前年実績で業務データを参照すると年度が1年ズレてしまうため
上手く計算ができません。
そのため、年度を比較して期間の判定式を分岐させることで
前年実績からも問題なく表示をすることができますね。