· 

AppSheet 使い方 | タスク管理アプリ(第3回)スライスで条件に合致するデータだけを切り出す

スライスで条件に合致するデータだけを切り出す

 

このブログではタスク管理アプリを通じてAppSheetの使い方を学びます。

 

前回(第2回)はアプリを生成してテーブルと列を設定しました。

今回はカンバンボード用のスライスを作成します。

1. サンプルのタスクを追加する

 

 

前回(第2回)までの準備で、タスクを追加、更新、削除する準備ができています。

ここで、実際にサンプルのタスクを追加してみましょう。

 

右側にあるプレビュー画面は以下のようになっていると思います。

タブメニューで「タスク」をクリックして、「+」ボタンをクリックします。

 

プレビューからタスクを追加する

 

タスクを追加するフォームが表示されるので、各項目を入力していきます。

ドライブとノートは追加しなくてもよいです。

 

タスクは3つくらい作りましょう。期日は、

  • 今日の日付の1日前(期日超過用)
  • 今日の日付
  • 今日の日付から3日後

の3種類を作っておくとよいと思います。

タスクを実際に作ってみる。

 

タスクを追加しました。

 

タスクを追加した。

2. カンバンボードのスライスを作成する

 

タスク管理アプリではカンバンボードでタスクを管理します。

「タスク」テーブルの「カンバン」列の値でカンバンのステータスを変えることができます。

これをボード形式で表示するためにスライスが必要になります。

 

スライスは特定の条件に合致するレコードを切り出して(スライス)表示するために使用します。

カンバンボードは「タスク」テーブルのデータを使用して表示します。

カンバン列の値、「未着手」「作業中」「完了」それぞれでデータを切り出したスライスがあればカンバンボードが作れます。

 

スライス
テーブルから特定の条件でデータを切り出す

カンバンのスライスを1つ作ってみましょう。

 

左側メニュー「Data」をクリック → タブメニュー「Slice」をクリックします。

「New Slice」をクリックして新しいスライスを作成します。

 

 

新しいスライスを作成する。

 

まずは「未着手」用のスライスを作成します。

  • Slice Name:「未着手」
  • Source Table:「タスク」

と設定します。

次に、Row filter conditionのフィールドをクリック → Create a custom expression をクリックします。

 

「未着手」用のスライスを設定する。

 

Expression Assistant が表示されます。

以下のように入力して「Save」してください。

 

「未着手」のExpression Assistantを設定する。

 

これで「未着手」用のスライスができました。

 

同じ手順で「作業中」「完了」のスライスも作成しましょう。

「New Slice」で新しいスライスを作成して、以下のように設定します。

 

  作業中スライス 完了スライス
Slice Name 作業中 完了
Source Table タスク タスク
Row filter condition [カンバン] = "作業中" [カンバン] = "完了"

3. 期日用のスライスを作成する

 

タスクの「期日」を基準としたスライスを作成してみましょう。

  • 期日まで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関数が使われています。

()内に列挙した条件がすべてTRUE(真)の時のみ、TRUE(真)を返します。

上の式の場合、「AND()内にある3つの条件式がすべてTRUE(真)」のレコードが「期日まで5日以内のタスクである」と判定されて、テーブルから切り出されます。

 

AND()
AND ( 条件1, 条件2, ・・・)

 今日の日付が期日から何日前(何日後)かを調べるために、

  •  [期日] - TODAY() 

という式を設定しています。TODAY関数は今日の日付を返します。

 

ここで「何日前(何日後)」かを計算するために、HOUR関数を使用しています。

HOUR関数は()内の値を「時間」の値にして返します。

上の式の場合、「期日と今日の日付の差」を「時間」に直します。

よって、HOUR関数の結果の値を24で割り算をすると、日数を計算できます。

 

HOUR()
HOUR ( 日時の値 )

3つの式のうち上の2つは、比較演算子を使って、

  • 期日までの日数が5以下
  • 期日までの日数が0より大きい

となり、レコードの期日が今日よりも「1日〜5日前」のレコードのみを切り出すことができます。

 

最後に、

  • [ カンバン ] <> "完了"

という式があります。これは「カンバン」列の値が「完了ではない」ということを意味します。

つまり、「カンバン」が「完了」したレコードは表示しないということです。

 

値1 <> 値2
値1 <> 値2(値1と値2は等しくない)

以上、3つの条件式を満たしたレコードが「期日より5日以内」のレコードとして切り出されます。

 

続けて、

  • 期日当日
  • 期日超過

のスライスも作成しましょう。

  期日当日スライス 期日超過
Slice Name 期日当日 期日超過
Source Table タスク タスク
Row filter condition

AND (

 [期日] = TODAY(),

 [カンバン] <> "完了"

)

AND(

 HOUR ( [ 期日 ] - TODAY() ) / 24 < 0,

 [カンバン] <> "完了"

)

 

以上、カンバンボードと期日表示のためのスライスを作成しました。

スライス本体はアプリには表示されないため、現時点ではその威力が明らかではありません。

次回、スライスを使用してViewを作成しますので、実際のカンバンボードのイメージが掴めるようになると思います。

 

次回(第4回)はアプリの見た目(View)を設定します。カンバンボードを実際に作ってみましょう。

 

アプリを作る前に実際に試してみたい方は、アプリスイートが作ったサンプルアプリを7日間無料体験ができます。

こちらからお問い合わせください。