数式リファレンスリファレンス
Formula_ の数式に書けるものを、ここに 1 か所にまとめました。実行されるのはここに載っているものだけです — 数式が読めるのは自分のレコードだけなので、同僚がアップロードしたワークブックが予期しない動作をすることはありません。
| 書けるもの | はたらき |
|---|---|
| 算術 | + - * /、さらに //(割って余りを切り捨て)、%(余りそのもの)、**(べき乗)。括弧でまとめられます:(a + b) * c。 |
| ほかのフィールド | フィールド名はそのまま書きます:hotel + meals。明細の数式では、場所を添えることでヘッダーフィールドも使えます — rate from HEADER または HEADER.rate。明細とヘッダーに同名のフィールドがある場合は、明細自身の値が優先されます。 |
| 明細の集計 | sum of <column>(または sum(<column>))は明細列をヘッダーフィールドに合計します。count of は入力済みの行を数え、average of は平均します。複数のグリッドが同じ列名を持つ場合は、from <SECTION> でどのセクションかを指定します — PART_LINES.amount という書き方もできます(アンダースコアはスペースの代わりで、大文字・小文字は問いません)。集計が使えるのは明細のあるフォームだけです。多数のレコードにまたがる数値はダッシュボードの役割で、そうした行は警告付きでスキップされます。 |
| 比較 | > >= < <= = != — 単独の = が「等しい」の意味です。比較の結果はそれぞれ真か偽で返ります。 |
IF(condition, a, b) | 判断を担う関数です。 条件が真なら 2 番目の値を、そうでなければ 3 番目の値を返します。場合分けを増やすには入れ子にします:IF(t > 200, "A", IF(t > 100, "B", "C"))。選ばれた分岐だけが実行されるため、IF(qty > 0, total / qty, 0) がゼロで割ることはありません。 |
| 条件の組み合わせ | 条件どうしを AND / OR でつなぐか(hotel > 100 AND meals > 20)、関数の形で AND(…)、OR(…)、NOT(x) と書きます。 |
| 関数 | abs、round、min、max、sum に加えて、len(テキストの長さ)と、値を整数・小数・テキストとして扱う int、float、str が使えます。 |
実例。 数式は Formula 列に書き、Output Field 列には、その数式が埋める読み取り専用フィールドの名前を書きます。
| 出力フィールド | 数式 |
|---|---|
| line_total | quantity * unit_price |
| grand_total | sum of amount |
| mileage | miles_driven * mileage_rate from HEADER |
| band | IF(total > 100, "High", "Low") |
| tier | IF(t > 200, "A", IF(t > 100, "B", "C")) |
| follow_up | IF(total > 100 AND paid = "no", "Yes", "No") |
数式の答えは数値(小数第 2 位に丸め)、テキスト(IF(hotel > 100, "High", "Low"))、または真/偽のいずれかです。チェックボックスフィールドでの真/偽ははい/いいえと表示されます。
シート名は
Formula_、Formulas_、Logic_ のいずれかにします — 標準の綴りは Formula_ です。数式が読み取れないとき、アプリは決して推測しません。その行をスキップし、ビルド警告でお知らせします。打ち間違いが、気づかないうちに誤った合計になることはありません。