AppSheetでカラムのSHOW?にチェックを入れているのにビューに表示されないことがあります。そういったときの原因と対処法についてまとめています。
症状
例えば、以下のように「次の予定日」というカラムがあり、SHOW?にチェックが入っています。
本来であれば「指定日」と「毎日(毎月)」の間に表示されるはずですが、ビューに表示されません。
原因
ビューに表示されない原因はAuto computeのSpreadsheet formulaに数式が入っていることです。
これは、AppSheetの元となっているスプレッドシートのセルに数式を入力している場合にテーブルを紐づけると自動で指定されます。
なお、スプレッドシートではセルの指定でよく使うA1やB2:C4のような「A1参照形式」の他に、「R1C1参照形式」というものがあります。
スプレッドシート上の「A1参照形式」はAppSheetに同期したときにAppSheet上では「R1C1参照形式」に書き換えられます。
対処法
対処法はいくつかありますが、代表的なものだと以下があります。
それぞれ利点と欠点があります。
Spreadsheet formulaをApp formulaに書き変えるのメリデメ
バーチャルカラムを作成する
対処法1. Spreadsheet formulaをApp formulaに書き換える
最もオススメな方法は「Spreadsheet formulaをApp formulaに書き換える」ことです。
書き換え前(Spreadsheet formula)
例えば、Spreadsheet formulaに以下のような数式が入っている場合があるとします。
switch(RC[-2],"毎月",RC[2],"隔週",RC[7],"毎週",RC[7],"毎日",today()+1,"何ヶ月毎",RC[5],"毎年",RC[10])
書き換え後
これを削除して、App formulaにAppSheetの形式で数式を書き換えます。
SWITCH([頻度],
"毎月",[(毎月)予定日],
"毎週",[(週)予定日],
"隔週",[(週)予定日],
"毎日",today()+1,
"何ヶ月毎",[(何ヶ月)予定日],
"毎年",[(毎年)予定日],
""
)
右上の「Done」をクリックして「SAVE」します。
対象のカラムがビュー上に無事に表示されました。
スプレッドシートの数式を値貼り付けする
現時点では元のスプレッドシートの対象のカラムに数式が入っていて、AppSheetのFormulaにも数式が入っている状態です。
このままでは、「Regenerate Schema」でテーブルをスプレッドシートと同期したときに、せっかく入力したApp formulaが消えて、Spreadsheet formulaが復活してしまいます。
これを防ぐために、スプレッドシートの数式を値貼り付けします。
以上で書き換えは完了です。
バーチャルカラムを作成する
スプレッドシートの数式をそのまま残しておきたい場合は、新しくバーチャルカラムを作成します。
バーチャルカラムとは何か?
バーチャルカラムとは、スプレッドシートと連携しないAppSheet上のみのカラムです。App formula(=Formula)に入力した数式に合わせて自動で計算処理を行ってくれます。
必ず「App formula(=Formula)」を入力する必要があります。カラムの編集は不可です(Editableにチェックできない)
(参考)【AppSheet】FORMULAとINITIAL VALUEの違いは何か?いつどう使えばいいかを実例で解説|バーチャルカラム(Virtual Column)とは何か?
実例
テーブル右上の「Add virtual column」をクリックします。
「Column name」と「App formula」を入力します。
テーブルの一番下に作成したバーチャルカラムが追加されます。
ビューの設定
あとは、もともとのカラム(「次の予定日」)のSHOW?のチェックを外しておきます。
ビューの表示順序をもともとのカラムの位置に表示するには対象のビューを選択し「Column order」の「Add」を連打して、カラムを表示したあと順序の入れ替えと削除を行います。
以上で完了です。