AppSheet 知っておくべき基礎知識 ”列値式”

AppSheetの始め方ですが、個人的には「まずは触ってみる」が良いのかなと思っています。

一方、どこかのタイミングで公式のAppSheet ヘルプを見てみる事をお勧めします。Google公式ではありますが、すっきりとまとまっています。

https://support.google.com/appsheet?sjid=16566310863871746831-NC

今回は、その中でもAppSheet 独自だなーと思う部分である「列値式」を取り上げます。

もし[_THIS]が何を意味してるか、まだご存じでなければご一読いただければと思います。

1.[カラム名]

まずは基本となる[カラム名]です。これは、テーブルの1項目を表現しています。(あえて触れていませんが、赤破線で示すように、行が特定できている前提です。)

2.テーブル名[列名]

次は、テーブル名[列名]です。当然、複数の値が対象となるため、テーブル名[列名]はLIST型になります。

3.[参照キー(Ref型)].[カラム名]

参照(Ref)を用いて、別テーブルの値を参照する方法です。

参照(Ref)を使えば、対象テーブルの行を特定できます。逆に言うと、対象テーブルをユニークに特手できないと参照キー(Ref)に指定できません。

以下の例では、

受注明細側から、親である受注テーブルの「ColB(例えば顧客ID)」を参照したい!

といった場合になります。

4.[Related テーブル名][カラム名]

こちらも参照ですが、列参照(ListRef)になります。そのため結果はLIST型となります。

この「[Related テーブル名]」は、AppSheet で自動で作成されるため、見覚えがある方も多いと思います。

以下の例では、

受注に紐づく、受注明細のリストが該当します。実態としては、受注テーブル側で、

=RefRows(“受注明細”,”受注ID”)

のようにな形で紐づけられます。

そのため、もし受注明細の合計金額が知りたい場合などは、受注テーブル側に仮想列(バーチャルカラム)として

SUM([Related 受注明細][小計])

とすることで、簡単に集計を実施することが出来ます。

5.[_THIS] [_THISROW]

これは特殊な表現(簡単なのですが)で、自分自身を表します。よく使うのは、Valid if などの条件判定になります。入力している値が正しいかをチェックする際に利用設定が。

例えば配送予定日の入力時に、3日より後の日付の設定が必須であれば、

=[THIS]>TODAY()+3

のように設定します。

また、SelectやFilterなどのLSITを扱う場合の条件では、[_THISROW]をよく用います。

例えば、同じ顧客の受注が存在するか確認したい場合、

=COUNT(Filter(“受注”,[顧客ID]=[_TISHROW].[顧客ID]))>0

とすることで、判定を行うことが可能です。

6.[_THISROW_BEFORE][_THISROW_AFTER]

これは、データ更新を伴う「Action(アクション)」「Automation(オートメーション)」で利用します。

1回のアクション/オートメーションの中で更新前と更新後のデータを、それぞれ取得することができるため、大変便利です。

よく利用するイディオムとしては、オートメーションの実行トリガーになります。データ更新が発生したら実行したい処理があった場合に、

[_THISROW_BEFORE].[UpdateTime]<>[_THISROW_AFTER].[UpdateTime]

とすることで、オートメーションを実行させられます。

まとめ

AppSheet で知っておくべきと思う「列値式」について、ざっとまとめてみましたが、いかがだったでしょうか?

本当はもう1つ「親レコードまたは祖父母レコードの列の値」を取得する表現である

[_THISROW-n].[Column]

があるのですが、私自身もあまり使ったことがないため割愛させて頂いています。(SELECTの副問合せに対するAppSheet の表現方法だと思っています。)

Comments

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です