計算と条件 1 / 8
計算式の基本
Formiaの式(FXL)は、Excelに近い書き方で計算・表示条件・自動入力を設定する小さな式言語です。式の書き場所、項目の呼びかた、演算子、未入力の扱いを説明します。
約4分で読めます
Formia マニュアルの目次(章と記事の一覧)
アプリをつくる
入力項目ガイド
Formiaでは、金額の計算や「このときだけ表示する」といった条件を、式で設定します。式の言語はFXL(Formia Expression Language)といい、Excelの関数に近い書き方です。この記事では、式の書き場所と基本の書きかたを説明します。
式を書く場所
式は、フォームの設計画面で項目を選んだときの右側の設定に書きます。
| 設定 | 場所 | はたらき |
|---|---|---|
| 計算式 | 「自動入力・計算」 | ほかの項目から値を自動で計算する。計算した項目は入力できなくなる |
| 表示条件 | 「表示条件・必須条件」 | 条件に合うときだけ項目を出す |
| 必須条件 | 「表示条件・必須条件」 | 条件に合うときだけ必須にする |
左のペインの「ロジック」タブには、設定した計算式と自動入力が一覧で出ます。どの項目がどの項目から計算されているかを、ここで見わたせます。

式は「=」で始める
式として書く値は、先頭に=を付けます。=がなければ、ただの文字(リテラル)として扱われます。
=qty * price ← 式(数量 × 単価)
2026-01-01 ← 式ではない。そのままの値
項目の呼びかた
式の中では、項目を**識別子(key)**で呼びます。keyは、設計画面の左ペイン「構成」に出せます。書き出しやAPIの列名と同じものです。
=qty * price
=customer_name.last ← 氏名の「姓」の部分
=items[].amount ← 明細(繰り返し)の全行の金額
明細の行の中の計算式では、同じ行の項目をそのままkeyで呼べます(上のqty * priceが、行ごとに計算されます)。
使える演算子
| 種類 | 演算子 | 例 |
|---|---|---|
| 算術 | + - * / % ^ | =price * 1.1 |
| 比較 | == != < <= > >= | =amount >= 100000 |
| 論理 | && || ! | =a > 0 && b > 0 |
| 含む | in | ='b' in tags |
| 文字の連結 | & | =last & ' ' & first |
| 未入力のとき | ?? | =memo ?? '(なし)' |
条件で値を切り替えるには、三項演算子ではなくIF(条件, 真のとき, 偽のとき)を使います。+は数値の足し算だけです。文字をつなぐときは&を使います。
未入力と型のルール
間違いが静かに紛れ込まないよう、決まりを厳しくしてあります。
- 未入力は0ではありません。
null + 1は未入力のまま(null)です。合計のSUMは、空のとき0になります - 型が違う比較は、保存のときにエラーになります。
1 == '1'(数と文字の比較)は書けません - 0で割ると「計算できません」になります。 結果は未入力扱いです
- 数値は10進で計算します。
0.1 + 0.2 == 0.3が正しく成り立つので、金額を安心して扱えます