コミュニティ · ヘルプ

Sheetward ユーザーガイド

Excel / OpenDocument ワークブック(または Google スプレッドシート)を、フォーム・検証・ルックアップ・インポート/エクスポートなどを備えたマルチユーザー Web アプリに変換します。

数式リファレンスリファレンス

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) と書きます。
関数absroundminmaxsum に加えて、len(テキストの長さ)と、値を整数・小数・テキストとして扱う intfloatstr が使えます。

実例。 数式は Formula 列に書き、Output Field 列には、その数式が埋める読み取り専用フィールドの名前を書きます。

出力フィールド数式
line_totalquantity * unit_price
grand_totalsum of amount
mileagemiles_driven * mileage_rate from HEADER
bandIF(total > 100, "High", "Low")
tierIF(t > 200, "A", IF(t > 100, "B", "C"))
follow_upIF(total > 100 AND paid = "no", "Yes", "No")

数式の答えは数値(小数第 2 位に丸め)、テキストIF(hotel > 100, "High", "Low"))、または真/偽のいずれかです。チェックボックスフィールドでの真/偽ははい/いいえと表示されます。

シート名は Formula_Formulas_Logic_ のいずれかにします — 標準の綴りは Formula_ です。数式が読み取れないとき、アプリは決して推測しません。その行をスキップし、ビルド警告でお知らせします。打ち間違いが、気づかないうちに誤った合計になることはありません。