一定期間のデータの抽出(スライス)

業務管理に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年ズレてしまうため

上手く計算ができません。

そのため、年度を比較して期間の判定式を分岐させることで

前年実績からも問題なく表示をすることができますね。