一般

計算

他のフィールドの値から計算した結果を出します。入力するところは出ず、値は式から自動で決まります。

こんなときに使う

  • 単価 × 数量で小計を出す
  • 税抜の金額から消費税額を出す
  • 期日までの残り日数を出す

設定できること

アプリの設定(フォーム)でこのフィールドを選ぶと、右側に出る設定です。

計算式
フィールドコードと演算子(+ - * / ^)、関数(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(受注日)
年齢を出したいだけなら、計算フィールドは要りません。「生年月日(年齢)」フィールドを使ってください。生年月日を入れると年齢が自動で添えて表示され、 「40歳以上」のような年齢での絞り込みや、10歳刻みの年代でのグラフ集計も そのままできます。年齢は保存せず表示するたびに計算し直すので、 去年入れたレコードでも値が古くなりません。 計算フィールドの AGE を使うのは、 年齢から別の値を出したいときだけで足ります。

設定例: 年齢で区分を出す

フィールド種類設定
生年月日生年月日(年齢)年齢は自動で添えて表示されます(計算フィールドは要りません)
区分計算計算式 IF(AGE(生年月日) >= 65, "シニア", "一般")/表示形式は既定のまま(文字を返す式はそのまま表示されます)

年齢そのものは「生年月日(年齢)」が表示するので、計算フィールドは 「区分」の 1 つで足ります。「区分」は絞り込みに使えますが、並び替え・グラフの集計には使えません。年代別の人数を グラフにするなら、「生年月日(年齢)」を分類に選ぶと 10 歳刻みでまとまります。

FISCAL_YEAR が返す年度の区切りは、アプリの設定 「アプリ情報 → 会計年度 → 開始月」で変えることができます(初期値は 4 月)。 開始月より前の月は前年度として扱われます。

設定例: 受注日から年度を出す

フィールド種類設定
受注日日付—
年度計算計算式 FISCAL_YEAR(受注日)/表示形式「数値」/小数部の表示桁数「0」/桁区切りは付けない

アプリの設定「アプリ情報 → 会計年度 → 開始月」が 4 月なら、 2026-03-31 の受注は 2025(年度)、2026-04-01 の受注は 2026 になります。 桁区切りを付けると「2,026」と出てしまうので外してください。

うまくいかないとき

「計算フィールドの参照が循環しています」と出る

計算フィールド同士がお互いを参照しています(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 やメール本文に値を埋め込めるできる
ルックアップのコピー先にできる他アプリから取得した値が入るできない

どのフィールドにも共通の設定

型に関わらず、すべてのフィールドで同じように設定できる項目です。

フィールド名
フォームや一覧の見出しに出る名前です。後から変えても、入っているデータはそのままです。
フィールドコード
計算式や定型文からこのフィールドを指すときの名前です。英数字・アンダースコア・日本語が使えます(空白と記号は不可、先頭に数字は置けません)。変更すると、参照している計算式や設定も追従して書き換わります。
ラベルを非表示
フォームでフィールド名を出さずに入力するところだけを置きます。見出しをラベルで別に付けたいときに使います。

他のフィールドも見るなら、一覧からどうぞ。