データベースを扱う AppSheetにおいて、List型は大変便利で重宝するものです。いわゆる「配列」と同じ概念ですが、データベースからのデータの切り出し、集計などに活躍します。
ここでは、List型を使って親テーブルから子テーブルを参照、データ抽出する方法と、抽出されたリストのある列の合計を求める方法を解説します。
利用例:こんな時に使います
- 注文履歴から特定顧客の注文個数を算出
- 在庫管理である商品の個数、購入金額累計を確認
親テーブルから子テーブルを参照する
在庫管理で顧客リストと取引履歴を分けるなど、親テーブルと子テーブルでデータを分けている時があります。この中で、親テーブルに関連する子テーブルの行だけを参照したいときに親テーブルにList型の列を作ることで、子テーブルのデータを抽出することができます。
ここでは、テーブルからデータを抽出するためにREF_ROWS関数を使います。その他、Slice機能を使う方法でもデータ抽出が可能です。
親テーブルの中に、子テーブルを参照するList型の仮想列を作成します。ここでは、ラーメン店のトッピングを管理するテーブルを想定します。トッピングの種類を管理する「親」テーブルと、注文履歴を記録する「子」テーブルを用意しました。
作成した仮想列を編集してREF_ROWS関数を入力します。
REF_ROWS関数は、現在のテーブルのKEY項目と一致する、参照先テーブルの特定の列を抽出してリスト化する関数です。
ここでは、「子」テーブルの「トッピング」列を参照して、「親」テーブルのトッピングと一致する列を抽出します。
重要な点は、子テーブルと一致させる親テーブルのアイテムの指定です。REF_ROWS関数では、抽出の基準となるのは、REF_ROWS関数が実行されているテーブル・行の「KEY」項目です。
この例では、親テーブルの「トッピング」に一致する子テーブルの「トッピング」を持つ行が抽出、リスト化されることになります。
抽出されたリストを表示すると以下のようになります。
親テーブルをカードビューで表示し、子テーブルを入れ子で表示させるようにしています。親テーブルのトッピング「チャーシュー」に対応する子テーブルの行がリスト化されて表示されています。
参照したデータの合計値を算出する
次に、参照したデータの値の合計を算出してみます。Excelでいえば、フィルターをかけたテーブルでSUM関数を使うようなものでしょうか。
これは、参照するデータがリストになっているので簡単です。ポイントは、算出するリストと列を正しく指定することです。
AppSheetにもSUM関数がありますので、仮想列を作って合計金額を計算してみます。
数式は簡単です。SUM関数で合計値を求めるリストの列を指定します。
ここで重要なことは、合計値を求めるリストの名前も、その中の列の名前も、角カッコ([)で囲うことです。
AppSheetのテーブルや列の参照は状況によって指定の仕方が違うのでどうも難しいと感じるのですが、ここでは、リストも列も角カッコで囲います。
リストの合計値を表示することができました。
いかがでしたでしょうか
AppSheetでテーブル間の参照をすることは少なからずありますが、関連づけやデータの抽出など、意外と手間取ることもあると思います。
やり方の備忘のように記載しましたが、参考になることでもあれば嬉しいです。
AppSheetを使ってアプリ開発
AppSheetを使ったデータ管理や生活の効率化、こちらの記事もご覧いただければと思います。
AppSheetの参考書
AppSheetをさらに研究するなら、こちらの参考書もどうぞ!
0 件のコメント:
コメントを投稿