タスク管理アプリを作りながら、AppSheetの使い方を学びましょう。
前回(第2回)はAppSheetアプリを生成してテーブルと列を設定しました。
今回はカンバンボード用のスライスを作成します。
スライスはAppSheetでよく使う機能なので、この機会にマスターしておきましょう!
【お知らせ】
2022年10月以降、AppSheetエディタの画面が新しく変更されています。
AppSheetのアップデートが速すぎて(汗)、このブログ記事はまだ新エディタの画面には対応していません。
エディタ画面右上にある「Switch to the legacy editor」というアイコンをクリックすると、新エディタと旧エディタの切り替えができます。
記事のアップデートができるまでは、とりあえず、旧エディタに切り替えて解説を読んでください。
1. AppSheetでタスクを追加してみる
前回(第2回)までの準備で、タスクを追加、更新、削除する準備ができています。
ここで、実際にAppSheetでタスクを数件、追加してみましょう。
AppSheetエディタの右側にあるプレビュー画面は以下のようになっていると思います。
タブメニューで「タスク」をクリックして、「+」ボタンをクリックします。
タスクを追加するフォームが表示されるので、各項目を入力していきます。
ドライブとノートは追加しなくてもよいです。
タスクは3つくらい作りましょう。期日は、
- 今日の日付の1日前(期日超過用)
- 今日の日付
- 今日の日付から3日後
の3種類を作っておくとよいと思います。
タスクを3件、追加しました。
2. AppSheetではスライスでレコードを切り出す
AppSheetにはスライスという機能があります。
スライスは、テーブルから特定の条件に合致するレコードを切り出す(スライスする)ことができます。
特定条件のレコードのみを取り出して表示する仮想テーブルのようなイメージです。
テーブルから特定の条件でレコードを切り出す
例えば、
- 進行中の案件のみ表示したい
- 自分にアサインされた案件のみ表示したい
- 当月の記録のみ表示したい
のような時に、AppSheetならスライスを使うのが得策です。
タスク管理アプリでは、
- タスクを「進捗状況」で分けて表示する
- タスクを「期日までの日数(超過を含む)」で分けて表示する
ために使います。
3. カンバンボードのスライスを作成する
タスク管理アプリではカンバンボードでタスクを管理します。
「タスク」テーブルの「カンバン」列の値でカンバンのステータスを変えることができます。
これをボード形式で表示するためにはスライスが必要になります。
カンバンボードは「タスク」テーブルのデータを使用して表示します。
カンバン列の値、「未着手」「作業中」「完了」それぞれでレコードを切り出したスライスがあればカンバンボードが作れます。
カンバンのスライスを1つ作ってみましょう。
AppSheetエディタの左側メニュー「Data」をクリック → タブメニュー「Slice」をクリックします。
「New Slice」をクリックして新しいスライスを作成します。
まずは「未着手」用のスライスを作成します。
- Slice Name:「未着手」
- Source Table:「タスク」
と設定します。
次に、Row filter conditionのフィールドをクリック → Create a custom expression をクリックします。
Expression Assistant が表示されます。
以下のように入力して「Save」してください。
これで「未着手」用のスライスができました。
同じ手順で「作業中」「完了」のスライスも作成しましょう。
「New Slice」で新しいスライスを作成して、以下のように設定します。
作業中スライス | 完了スライス | |
---|---|---|
Slice Name | 作業中 | 完了 |
Source Table | タスク | タスク |
Row filter condition | [カンバン] = "作業中" | [カンバン] = "完了" |
4. 期日用のスライスを作成する
タスクの「期日」を基準としたスライスを作成してみましょう。
- 期日まで5日以内
- 期日当日
- 期日超過
でスライスを分けてカンバンのようにボード表示すると、タスク管理アプリで期日管理も可視化できるようになります。
まずは「期日まで5日以内」用のスライスを作成します。
カンバンボード用のスライスと同じ手順です。
- Slice Name:「期日まで5日以内」
- Source Table:「タスク」
と設定します。
Row filter condition → Create a custom expression → Expression Assistant は以下のように入力します。
入力した式は以下のようなものです。コピペして使えます。
期日まで5日以内の Row filter condition
AND( HOUR( [ 期日 ] - TODAY() ) / 24 <= 5, 0 < HOUR( [ 期日 ] - TODAY() ) / 24, [ カンバン ] <> "完了" )
この式には、ANDというAppSheet関数が使われています。
()内に列挙した条件がすべてTRUE(真)の時のみ、TRUE(真)を返します。
上の式の場合、「AND()内にある3つの条件式がすべてTRUE(真)」のレコードが「期日まで5日以内のタスクである」と判定されて、テーブルから切り出されます。
AND ( 条件1, 条件2, ・・・)
今日の日付が期日から何日前(何日後)かを調べるために、
- [期日] - TODAY()
という式を設定しています。TODAYというAppSheet関数は今日の日付を返します。
ここで「何日前(何日後)」かを計算するために、HOURというAppSheet関数を使用しています。
HOUR関数は()内の値を「時間」の値にして返します。
上の式の場合、「期日と今日の日付の差」を「時間」に直します。
よって、HOUR関数の結果の値を24で割り算をすると、日数を計算できます。
HOUR ( 日時の値 )
3つの式のうち上の2つは、比較演算子を使って、
- 期日までの日数が5以下
- 期日までの日数が0より大きい
となり、レコードの期日が今日よりも「1日〜5日前」のレコードのみを切り出すことができます。
最後に、
- [ カンバン ] <> "完了"
という式があります。これは「カンバン」列の値が「完了ではない」ということを意味します。
つまり、「カンバン」が「完了」したレコードは表示しないということです。
値1 <> 値2(値1と値2は等しくない)
以上、3つの条件式を満たしたレコードが「期日より5日以内」のレコードとして切り出されます。
続けて、
- 期日当日
- 期日超過
のスライスも作成しましょう。
期日当日スライス | 期日超過 | |
---|---|---|
Slice Name | 期日当日 | 期日超過 |
Source Table | タスク | タスク |
Row filter condition | AND ( [期日] = TODAY(), [カンバン] <> "完了" ) |
AND( HOUR ( [ 期日 ] - TODAY() ) / 24 < 0, カンバン] <> "完了" ) |
以上、カンバンボードと期日表示のためのスライスを作成しました。
スライス本体はアプリには表示されないため、現時点ではその威力が明らかではありません。
次回、スライスを使用してViewを作成しますので、タスク管理アプリのイメージが掴めるようになると思います。
次回(第4回)はタスク管理アプリの見た目(View)を設定します。カンバンボードを実際に作ってみましょう。