計算項目の数式・関数・参照方法
この記事では、計算項目の数式の書き方や関数の使い方、他テーブル参照を含む計算式についてご説明します。
計算項目の基本的な説明はテーブル内項目タイプ:計算をご覧ください。
計算項目の数式について
基本的な数式のルールは下記となります。
- 参照する項目名を{}で囲む
- 他のテーブルを参照する場合は::をつける
- 四則演算は+-*/の記号を使います。
例えば、「売上」という計算項目で「価格」と「数量」から計算を行う場合、以下のような数式となります。
{価格}*{数量}
計算式のバリデーション(入力チェック)
計算式を入力する際、リアルタイムでバリデーション(入力内容のチェック)が行われます。特に関数を使用する場合、関数ごとに必要な引数の数が正しく入力されているか自動的にチェックされます。
引数の数が間違っている場合、エラーメッセージが表示され、必要な引数の数と現在入力されている数が提示されます。これにより、設定ミスを未然に防ぐことができます。
代表的な関数の引数数:
| 関数名 | 必要な引数数 | 内容 |
|---|---|---|
| IF | 3 | 条件, 真の場合, 偽の場合 |
| ROUND | 1 または 2 | 数値, [小数点以下の桁数] |
| DATE_ADD | 3 | 日付フィールド, 単位("MONTH"等), 加算する数値 |
| DATE_SUB | 3 | 日付フィールド, 単位("MONTH"等), 減算する数値 |
※特に DATE_ADD や DATE_SUB は、システム独自の3引数形式(日付, 単位, 数値)を正確に入力する必要があります。
数式で関数を使う場合
関数を使う場合は例えば以下のような式となります。
ROUND({価格}*1.1)*{数量}
計算式で使用可能な関数の詳細は計算項目の関数リファレンスをご覧ください。
他テーブル参照や関連レコード、子テーブルを計算式に含む場合
他テーブルの数値を使う場合
例えば、以下のように他のテーブルを参照している構成で考えてみます。
| テーブル | 項目名 | 項目種類 |
|---|---|---|
| 商品テーブル | 商品名 | 文字列(一行) |
| 商品テーブル | 価格 | 数値 |
| 売上テーブル | 商品 | 他テーブル参照 |
| 売上テーブル | 数量 | 数値 |
| 売上テーブル | 売上 | 計算 |
※商品テーブルの商品名を参照
このような場合、「売上」項目上の数式では以下のように、「商品」項目を使って商品テーブルの価格を参照します。
{商品::価格}*{数量}
子テーブルで親テーブルの項目データを取得する
以下の通り、子テーブル上の計算項目に設定することで、他テーブル参照設定(子テーブル設定)されている子テーブルから、親テーブルの項目データの取得が可能です。
(親テーブルの名称ではなく、単純に親テーブルと入力する)
※親テーブルで「複数の値の登録を許可する」がONになっている場合は取得することができません。
{親テーブル::項目名}
子テーブルや関連レコードの項目を計算する
子テーブルや関連レコードでは、SUM関数を用いて特定の項目の総和を出すことが可能です。
SUM({関連レコード一覧(子テーブル)の名称::計算を行いたい関連レコード一覧(子テーブル)内の項目名})
※特定の文字列を抽出することはできません。
Yes/No項目の✓の有無を条件とする場合
"true" または "false" を用いることで計算が可能です。
IF({Yes/No項目名}="true", trueの場合に入れたい数字や式, falseの場合に入れたい数字や式)
※他テーブル参照項目の値が文字列の場合、計算項目で表示させる際、参照元テーブルのレコードIDが表示される仕様となります。
テキスト表記にさせたい場合には、以下の方法をご利用いただけます。
- 文字列(一行)項目を作成。
- 他テーブル参照項目の「項目のコピー(ルックアップ)」に、「値を表示させたい項目」→「①で作成した文字列(一行)」を設定。