ユーザーが入力した数式をデータベースに保存する

ユーザーがセルに入力した値をデータベースに保存するには、データ登録アクション等で対象のセルを指定して保存します。
ただ、セルに数式が入力されている場合、セル指定をして登録すると数式の評価結果の値が保存され、数式は保存されません。
ここでは、数式をデータベースに保存する方法を説明します。

ユーザーが入力した数式を表示する

ユーザーが入力した数式を表示するには FORMULATEXT 関数を使用します。
FORMULATEXT 関数の引数にセルを指定すると、セルに入力された数式が表示されます。
../../../_images/img_01377.png

ユーザーが入力した数式、および、値を表示する

FORMULATEXT 関数を使用すると、指定されたセルに入力された数式を表示できますが、
セルに数式ではなく値が入力されていた場合、エラーが表示されます。
../../../_images/img_02323.png

数式と値のどちらが入力された場合もエラーなく表示するには、ISFORMULA 関数と FORMULATEXT 関数を組み合わせて以下のように使用します。

../../../_images/img_03235.png
ISFORMULA 関数は、引数に指定したセルに数式が入力されている場合のみ true を返します。
そのため、上記のように使用することで、数式が入力されている場合は数式が、それ以外の場合は値が表示されます。

サンプルアプリを作成する

サンプルアプリを使ってユーザーが入力した数式をデータベースに保存する方法を説明します。

データを入力するためのシートを作成する

まずは以下のようなシートを作成します。
このシートでは、登録ボタン押下時に一覧に入力された情報をテーブルに保存します。
また、「売上予測」の列のみユーザーが入力できるように設定しておきます。
../../../_images/img_04195.png

参考

一部のセルのみ入力を許可する方法については 公開時にセルの入力を許可する を参照してください。

入力した数式、および、値を表示するための列を用意する

「売上予測」に入力した数式を表示するため、「売上予測の入力値」を以下の通り用意します。
「売上予測の入力値」では、FORMULATEXT 関数と ISFORMULA 関数を使用して、「売上予測」に入力された数式や値を表示するようにします。
../../../_images/img_05177.png

登録を行うアクションセットを作成する

登録ボタン押下時の処理として、一覧の情報を全てデータベースに登録するアクションセットを以下の通り作成します。
登録先のテーブルには、「売上予測」および「売上予測の入力値」を保存するカラムを用意します。
../../../_images/img_06139.png

サンプルアプリを実行する

作成したアプリを実行し、数式がデータベースに登録されることを確認します。

数式、および、値を入力する

アプリを実行し、一覧の「売上予測」を入力します。
「売上予測」に数式や値を入力すると、「売上予測の入力値」にその内容が表示されます。
「売上予測の入力値」を確認すると、数式を入力した場合と値を入力した場合それぞれが正しく表示されることが確認できます。
../../../_images/img_07119.png

データを登録する

登録ボタンを押下してデータを登録します。
テーブルを確認すると、「売上予測」の値と「売上予測の入力値」がどちらも登録されていることが確認できます。
../../../_images/img_08111.png