一般
計算
他のフィールドの値から計算した結果を出します。入力するところは出ず、値は式から自動で決まります。
こんなときに使う
- 単価 × 数量で小計を出す
- 税抜の金額から消費税額を出す
- 期日までの残り日数を出す
設定できること
アプリの設定(フォーム)でこのフィールドを選ぶと、右側に出る設定です。
- 計算式
- フィールドコードと演算子(+ - * / ^)、関数(IF・SUM・ROUND・ROUNDUP・ROUNDDOWN・YEN・AND・OR・NOT・CONTAINS・DATE_FORMAT など)で書きます。AGE・TODAY・FISCAL_YEAR のように現在日時を使う関数もあります。
- 表示形式
- 結果を数値・桁区切りつき数値・日時・日付・時刻・時間(26時間3分/1日2時間3分)のどれで見せるかを選びます。
- 小数部の表示桁数
- 空欄ならアプリ設定の既定に従います。
- 桁区切りを表示
- 1,000 のように3桁ごとに区切ります。
- 単位 / 単位の位置
- 結果に「円」などを添えて表示します。前後の位置も選べます。
計算フィールドとは
フォームの設定で「計算」フィールドを追加し、計算式を書きます。式には他のフィールドのフィールドコードをそのまま書きます(フィールド名ではありません)。
単価 * 数量 紹介手数料 * 1.08 姓 & " " & 名
計算結果はレコードを開いたときや保存したときに自動で更新されます。 計算フィールドに直接入力することはできません。
設定例: 見積の金額を出す
| フィールド | 種類 | 設定 |
|---|---|---|
| 単価 | 数値 | 単位「円」/単位の位置「後」 |
| 数量 | 数値 | — |
| 金額 | 計算 | 計算式 単価 * 数量/表示形式「数値・桁区切りあり(1,000)」/単位「円」 |
式に書く「単価」「数量」はフィールドコードです。 フィールド設定の「フィールドコード」を確認してください。
使える演算子
| 演算子 | 意味 | 例 |
|---|---|---|
+ - * / | 足す・引く・掛ける・割る | 単価 * 数量 |
^ | べき乗(指数は -100〜100) | 2 ^ 10 |
& | 文字をつなぐ | 姓 & " " & 名 |
= != < > <= >= | 比べる(IF と一緒に使う) | 金額 >= 10000 |
0 で割るとエラーになります。
使える関数
| 関数 | 説明 | 例 |
|---|---|---|
SUM | 合計する。テーブルの列も渡せる | SUM(小計) |
ROUND | 四捨五入 | ROUND(金額, 0) |
ROUNDUP | 切り上げ | ROUNDUP(金額, 0) |
ROUNDDOWN | 切り捨て | ROUNDDOWN(金額, 0) |
YEN | 円表示にする | YEN(金額) |
IF | 条件で分ける | IF(金額 >= 10000, "大口", "通常") |
AND OR NOT | 条件を組み合わせる | AND(A > 0, B > 0) |
CONTAINS | 選択肢に含まれるか | CONTAINS(種別, "新規") |
DATE_FORMAT | 日付の見た目を変える | DATE_FORMAT(受付日, "YYYY/MM/DD") |
この他に「今日」を使う関数があります(「今日」を使う計算)。
日付・時刻の計算
計算式の中では、日付・日時・時刻は1970 年からの経過秒数として扱われます。そのため引き算をすると秒数が出ます。
1分 = 60 1時間 = 60 * 60 = 3600 1日 = 60 * 60 * 24 = 86400 終了 - 開始 → 経過した秒数 申込日 + (60*60*24*30) → 30日後 退勤 - 出勤 - 休憩 * 60 → 1日の勤務時間
秒数のままだと読みづらいので、表示の仕方で「時間」や「日時」を選んでください。
設定例: 1 日の勤務時間を出す
| フィールド | 種類 | 設定 |
|---|---|---|
| 出勤 | 時刻 | — |
| 退勤 | 時刻 | — |
| 休憩 | 数値 | 単位「分」/単位の位置「後」 |
| 実働時間 | 計算 | 計算式 退勤 - 出勤 - 休憩 * 60/表示形式「時間(26時間3分)」 |
休憩は「分」で入力するので * 60 で秒に直しています。 表示形式を「数値」のままにすると、秒数(例: 27000)がそのまま出ます。
表示の仕方
計算フィールドの設定で「表示形式」を選べます。計算結果そのものは変わらず、 見せ方が変わります。
| 表示形式 | 何として表示するか | 例 |
|---|---|---|
| 数値 | そのまま | 1000 |
| 数値・桁区切りあり | 3 桁ごとに区切る | 1,000 |
| 日付 / 日時 / 時刻 | 経過秒数を日付に戻す | 2026-07-30 |
| 時間(26時間3分) | 経過した時間 | 26時間3分 |
| 時間(1日2時間3分) | 同上、日数つき | 1日2時間3分 |
小数の桁数・桁区切りの有無・単位(と単位を前後どちらに付けるか)も設定できます。 桁数を指定しない場合はアプリの設定に従います。
テーブル(表)と計算
テーブル(表形式で行を増やせるフィールド)周りの計算は、計算フィールドをテーブルの外に置くか、テーブルの列として置くかで 書き方が変わります。
テーブルの外に置く(行をまたぐ合計)
テーブルの列は、テーブルの外に置いた計算フィールドから SUM で 合計できます。
SUM(小計) → 明細テーブルの「小計」列の合計 SUM(小計) - 値引き → 合計から値引きを引く
このとき、テーブルの列は SUM の中でだけ使えます。小計 * 2 のように直接書くとエラーになります (どの行の値か決まらないため)。
設定例: 明細の合計を出す(テーブルの外)
| フィールド | 種類 | 設定 |
|---|---|---|
| 明細 | テーブル | 列に「単価」「数量」「小計」を置く |
| 合計 | 計算(テーブルの外) | 計算式 SUM(小計)/表示形式「数値・桁区切りあり(1,000)」/単位「円」 |
テーブルの列として置く(行ごとの計算)
テーブルの列そのものを計算フィールドにもできます。この場合は同じ行の列だけを参照して、行ごとに計算されます。 行を追加すればその行で計算されます。
単価 * 数量 → 明細テーブルの「小計」列(行ごと) IF(数量 >= 10, "まとめ買い", "")
列の計算式から、テーブルの外のフィールドや、他の行は参照できません。 外のフィールドコードを書いても値は入りません。行をまたぐ集計をしたいときは、 上の SUM をテーブルの外に置いてください。
設定例: 明細テーブルの「小計」列(行ごと)
| フィールド | 種類 | 設定 |
|---|---|---|
| 明細 > 単価 | 数値(テーブルの列) | 単位「円」 |
| 明細 > 数量 | 数値(テーブルの列) | — |
| 明細 > 小計 | 計算(テーブルの列) | 計算式 単価 * 数量/表示形式「数値・桁区切りあり(1,000)」/単位「円」 |
この「小計」列を、上の設定例の SUM(小計) で合計すると 「明細ごとの小計+全体の合計」になります。 計算列は入力するところではなく、行を入力すると値が出ます。
「今日」を使う計算
年齢や経過年数のように、今日が何日かによって変わる計算もできます。
| 関数 | 説明 | 例 |
|---|---|---|
AGE | 満年齢(表示するだけなら「生年月日(年齢)」フィールドで足ります) | AGE(生年月日) |
YEARS_SINCE | 満何年経ったか | YEARS_SINCE(入社日) |
MONTHS_SINCE | 満何か月経ったか | MONTHS_SINCE(申込日) |
DAYS_SINCE | 何日経ったか | DAYS_SINCE(申込日) |
TODAY | 今日 | IF(期限 < TODAY(), "遅延", "正常") |
THIS_YEAR | 今年(西暦) | THIS_YEAR() |
FISCAL_YEAR | 年度 | FISCAL_YEAR(受注日) |
AGE を使うのは、 年齢から別の値を出したいときだけで足ります。設定例: 年齢で区分を出す
| フィールド | 種類 | 設定 |
|---|---|---|
| 生年月日 | 生年月日(年齢) | 年齢は自動で添えて表示されます(計算フィールドは要りません) |
| 区分 | 計算 | 計算式 IF(AGE(生年月日) >= 65, "シニア", "一般")/表示形式は既定のまま(文字を返す式はそのまま表示されます) |
年齢そのものは「生年月日(年齢)」が表示するので、計算フィールドは 「区分」の 1 つで足ります。「区分」は絞り込みに使えますが、並び替え・グラフの集計には使えません。年代別の人数を グラフにするなら、「生年月日(年齢)」を分類に選ぶと 10 歳刻みでまとまります。
FISCAL_YEAR が返す年度の区切りは、アプリの設定 「アプリ情報 → 会計年度 → 開始月」で変えることができます(初期値は 4 月)。 開始月より前の月は前年度として扱われます。
設定例: 受注日から年度を出す
| フィールド | 種類 | 設定 |
|---|---|---|
| 受注日 | 日付 | — |
| 年度 | 計算 | 計算式 FISCAL_YEAR(受注日)/表示形式「数値」/小数部の表示桁数「0」/桁区切りは付けない |
アプリの設定「アプリ情報 → 会計年度 → 開始月」が 4 月なら、 2026-03-31 の受注は 2025(年度)、2026-04-01 の受注は 2026 になります。 桁区切りを付けると「2,026」と出てしまうので外してください。
絞り込み・並び替え・集計
計算フィールドは式の書き方によって、 絞り込み・並び替え・グラフの集計に使えるかどうかが変わります。
| 式の種類 | 絞り込み | 並び替え | グラフの集計 |
|---|---|---|---|
| 普通の計算 単価 * 数量、IF(金額>=…) | ○ | ○ | ○ |
| 年齢・経過年数・年度 AGE(…)、YEARS_SINCE(…)、MONTHS_SINCE(…)、DAYS_SINCE(…)、FISCAL_YEAR(…) | ○ | ○ | ○ |
| その他「今日」を使う計算 IF(期限 < TODAY(), …) など | ○ ※ | × | × |
※ 1 件ずつ計算して判定するため、他の条件で 10,000 件以下まで絞ってから使ってください。多すぎる場合はその旨のメッセージが出ます。
IF(期限 < TODAY(), …) のような自由な形の計算は、グラフの集計や 分類には使えません。グラフを開くとその旨が表示されるので、計算の元になる 日付フィールド(生年月日・受注日など)で集計してください。
テーブルの列は、式の種類に関わらず対象外です。テーブルの列(計算列を含む)では絞り込み・並び替え・グラフの集計はできません。 合計などで絞り込みたい場合は、テーブルの外に SUM の計算フィールドを置いて、そちらを使ってください。
うまくいかないとき
「計算フィールドの参照が循環しています」と出る
計算フィールド同士がお互いを参照しています(A が B を、B が A を使っている)。 どちらかの式を修正してください。
「テーブルの列は SUM の中でだけ使えます」と出る
テーブルの外に置いた計算フィールドから、テーブルの列を直接使っています。SUM(列名) の形にしてください。行ごとに計算したい場合は、 計算フィールドをそのテーブルの列として置きます(テーブル(表)と計算)。
テーブルの列に置いた計算の値が空になる
列の計算式が、テーブルの外のフィールドや他の行を参照しています。 列の計算式から参照できるのは同じ行の列だけです。
「フィールド「◯◯」が存在しません」と出る
式に書いたフィールドコードが間違っているか、そのフィールドが削除されています。 フィールド名ではなくフィールドコードを書いてください。
絞り込みの候補に計算フィールドが出てこない
計算式が空のフィールドは候補に出ません。式を設定してください。
式を修正したのに古い値のままに見える
式を変えると、既存のレコードの計算値は自動で計算し直されます。 レコード数が多いと少し時間がかかることがあります。 しばらくしてから画面を読み込み直してください。
覚えておくこと
- 式の中では日付・時刻は「1970年からの経過秒数」として扱います(1日 = 60*60*24)。
- 生年月日から年齢を出したいときは「生年月日(年齢)」フィールドを使ってください。年齢が自動で添えて表示され、年齢での絞り込みもできます。
- 絞り込みにはどの式でも使えます。ただし「今日」を使う式(TODAY など)は1件ずつ計算して判定するので、他の条件で10,000件以下まで絞ってから使ってください。
- 「今日」を使う式は、並び替えとグラフの集計に使えないことがあります。AGE(生年月日) のように年齢・経過年数・年度の関数1つだけの式なら使えます。
- テーブルの列に置いた計算は同じ行の中だけを見ます。行をまたいで合計したいときは、テーブルの外に SUM(列) を置いてください。
- ルックアップ(同期)やその連動項目を使う式は、結果を保存せず、表示のたびに参照先の現在の値で計算します。参照先の値が変わると結果もすぐ変わります。絞り込み・並び替え・グラフの集計と分類にも使えますが、1件ずつ計算するので、他の条件で10,000件以下まで絞ってから使ってください。
できること・できないこと
一覧・集計・公開フォームなど、他の機能からこのフィールドをどう扱えるかです。
| できること | 可否 | 補足 |
|---|---|---|
| 必須にできる未入力のまま保存できなくする | できない | |
| 重複を禁止できる同じ値のレコードを2件作れなくする | できない | |
| 絞り込みに使える一覧の条件に指定できる | できる | 「今日」を使う式は1万件以下に絞ってから |
| 並び替えに使える一覧の並び順に指定できる | 条件つきでできる | 「今日」を使う式は年齢などの関数1つのみ |
| 集計・グラフの分類に使えるレポートとクイックグラフの「分類」 | 条件つきでできる | 「今日」を使う式は年齢などの関数1つのみ |
| テーブルの列に置けるテーブル(明細行)の中で使える | できる | 同じ行だけを見る |
| 公開フォームに置ける社外の人に入力してもらえる | できない | |
| 書類・メールに差し込めるPDF やメール本文に値を埋め込める | できる | |
| ルックアップのコピー先にできる他アプリから取得した値が入る | できない |
どのフィールドにも共通の設定
型に関わらず、すべてのフィールドで同じように設定できる項目です。
- フィールド名
- フォームや一覧の見出しに出る名前です。後から変えても、入っているデータはそのままです。
- フィールドコード
- 計算式や定型文からこのフィールドを指すときの名前です。英数字・アンダースコア・日本語が使えます(空白と記号は不可、先頭に数字は置けません)。変更すると、参照している計算式や設定も追従して書き換わります。
- ラベルを非表示
- フォームでフィールド名を出さずに入力するところだけを置きます。見出しをラベルで別に付けたいときに使います。
他のフィールドも見るなら、一覧からどうぞ。