AppSheetを使っているときに、テーブルやカラムのソースとなっているスプレッドシートに同じ名前のカラムがあったとします。
このときに「Regenerate Schema」を実行するとどうなるか?元のカラムが上書きされて消えるのか?エラーになるのか?という話です。
結論
結論としては、同じ名前のカラムがあったとしても問題なく読み込まれます。元のカラムが消えたり、上書きされるということはありません。
その際、スプレッドシート側のデータには何の変化もありません。AppSheetに読み込んだカラムが次のような命名になります。
カラム名_行番号
例えば、カラム名が「画像2」でK行、すなわち11行目にある列を「Regenerate Schema」で読み込むとAppSheetに追加されたカラムの名前は「画像2_11」となります。

↓

ちなみに列番号はスプレッドシートの方と連動しています。AppSheet側ではありません。AppSheetだとデフォルトでスプレッドシートの行番号を反映した「_RowNumber」というバーチャルカラムが追加されるので、スプレッドシートのカラム番号とずれが発生します。
カラムの名前を変更したい場合はどうすればいいか?注意点
カラムの名前を変更する方法は以下の2つです。
- AppSheet上でDisplay nameを指定する。
- スプレッドシートの列名を変更する。
AppSheet上でDisplay nameを指定する
一番オーソドックスな方法はAppSheet上でDisplay nameを指定することです。
カラムの設定画面を開くと「Display」の中に「Display name」があります。ここに表示したい文字列や値を呼び出す数式を設定します。

すると、アプリ上では指定した名前が表示されます。※AppSheetのカラム名自体は変わりません。
スプレッドシートの列名を変更する
もう一つの方法はソースとなっているスプレッドシートの列名を変更する方法です。
ただし、これには注意しなければいけないことがあります。
新しいカラムとして読み込まれるため、REQUIRE?、SERARCH?、SCAN?などの元のカラムで指定していた設定がリセットされます。
INITAL VALUEやFORMULAなどの数式もリセットされ、全く新規のカラムを読み込んだときと同じになります。
上記を踏まえた上で変更するときは、スプレッドシートのカラム名を変更し「Regenerate Schema」を実行すればOKです。
例えば、「画像2」というカラム名を「イメージ2」に変更します。「Regenerate Schema」を実行すると、スプレッドシートのカラム名が反映されます。
