自動計算の設問種別で使用できる変数、関数、演算子のヘルプです。
すべての計算式は = で始めます。
=SUM({score1}, {score2}, {score3})
同じフォーム内のフィールド:
{フィールドキー}前フェーズのフォームのフィールド:
{フォームタイプ.フィールドキー}従業員属性:
{employee.属性名}
例:
={score}
={first.total_score}
={employee.hire_date}
整数: 0, 1, 100, -5
小数: 3.14, 0.5, -2.718
注意:
- 先頭に + は付けられません(5 は可、+5 は不可)
- カンマ区切りは使えません(1000 は可、1,000 は不可)
例:
={score} * 1.5
={total} + 100
=ROUND({average}, 2)
ダブルクォート " で囲みます。
例:
=IF({score}>=80, "合格", "不合格")
=IF({grade}="A", 100, 0)
="値: ""{特殊な値}""" → 値: "特殊な値"
TRUE または FALSE を使用します(大文字小文字は区別しません)。
例:
=IF(TRUE, "常に表示", "表示されない")
=NOT(FALSE)
=AND(TRUE, {isActive})
ISO 8601形式(YYYY-MM-DD)のダブルクォート文字列、またはDATE関数を使用します。
例:
=DATEDIF("2024-04-01", TODAY(), "M")
=DATEDIF(DATE(2024, 4, 1), TODAY(), "M")
サポートしない形式:
- "04/01/2024" (ロケール依存)
- "2024/04/01" (スラッシュ区切り)
- "April 1, 2024" (英語表記)
演算子 | 説明 | 例 |
|---|---|---|
| 加算 |
|
| 減算 |
|
| 乗算 |
|
| 除算 |
|
| パーセント |
|
| べき乗 |
|
注意: 剰余(余り)は MOD() 関数を使用します。
演算子 | 説明 | 例 |
|---|---|---|
| 等しい |
|
| 等しくない |
|
| より小さい |
|
| 以下 |
|
| より大きい |
|
| 以上 |
|
^(べき乗)*,/,%(乗算・除算・剰余)+,-(加算・減算)=,<>,<,<=,>,>=(比較)
括弧 () を使用して優先順位を明示できます。
例:
=({a} + {b}) * {c} → aとbを足してからcを掛ける
={a} + {b} * {c} → bとcを掛けてからaを足す
複数の数値の合計を返します。
構文: SUM(値1, 値2, ...)
例:
=SUM({field1}, {field2}, {field3})
=SUM(10, 20, 30) → 60
複数の数値の算術平均を返します。
構文: AVERAGE(値1, 値2, ...)
例:
=AVERAGE({score1}, {score2})
=AVERAGE(80, 90, 70) → 80
複数の数値のうち最小値を返します。
構文: MIN(値1, 値2, ...)
例:
=MIN({評価1}, {評価2}, {評価3})
=MIN(5, 2, 8) → 2
複数の数値のうち最大値を返します。
構文: MAX(値1, 値2, ...)
例:
=MAX({評価1}, {評価2}, {評価3})
=MAX(5, 2, 8) → 8
複数の数値の中央値を返します。
構文: MEDIAN(値1, 値2, ...)
例:
=MEDIAN({評価1}, {評価2}, {評価3})
=MEDIAN(1, 2, 3, 4, 5) → 3
=MEDIAN(1, 2, 3, 4) → 2.5
複数の数値の標本標準偏差を返します。
構文: STDEV(値1, 値2, ...)
引数: 2つ以上必要
例:
=STDEV({評価1}, {評価2}, {評価3})
数値が入力されている引数の数を返します。
構文: COUNT(値1, 値2, ...)
例:
=COUNT({評価1}, {評価2}, {評価3})
空でない値の引数の数を返します。
構文: COUNTA(値1, 値2, ...)
例:
=COUNTA({評価1}, {評価2}, {評価3})
指定した桁数で四捨五入を行います。
構文: ROUND(数値, 桁数)
引数:
- 桁数: 省略時は0(整数に丸める)。負の値で整数部分を丸める。
例:
=ROUND(3.456, 2) → 3.46
=ROUND(3.456) → 3
=ROUND(1234, -2) → 1200
指定した桁数で切り上げを行います(0から離れる方向)。
構文: ROUNDUP(数値, 桁数)
例:
=ROUNDUP(3.141, 2) → 3.15
=ROUNDUP(-3.141, 2) → -3.15
指定した桁数で切り捨てを行います(0に近づく方向)。
構文: ROUNDDOWN(数値, 桁数)
例:
=ROUNDDOWN(3.789, 2) → 3.78
=ROUNDDOWN(-3.789, 2) → -3.78
数値の絶対値を返します。
構文: ABS(数値)
例:
=ABS(-5) → 5
=ABS(3) → 3
除算の余り(剰余)を返します。
構文: MOD(被除数, 除数)
例:
=MOD(10, 3) → 1
=MOD(10, -3) → -2
=MOD(-10, 3) → 2
条件に基づいて異なる値を返します。
構文: IF(条件, 真の場合の値, [偽の場合の値])
引数:
- 偽の場合の値: 省略時はFALSEを返す
例:
=IF({score}>=80, "合格", "不合格")
=IF({評価}>3, {評価}*1.1, {評価})
=IF({isComplete}, "完了")
複数の条件を順番に評価し、最初にTRUEとなった条件に対応する値を返します。
構文: IFS(条件1, 値1, [条件2, 値2, ...])
注意: どの条件もTRUEでない場合は #N/A エラー。デフォルト値を設定する場合は最後の条件に TRUE を指定。
例:
=IFS({score}>=90, "S", {score}>=80, "A", {score}>=70, "B", {score}>=60, "C", TRUE, "D")
=IFS({評価}==5, "最優秀", {評価}==4, "優秀", {評価}==3, "良好", TRUE, "要改善")
論理値を反転します。
構文: NOT(論理値)
例:
=NOT(TRUE) → FALSE
=NOT({score}<50) → スコアが50以上ならTRUE
すべての引数がTRUEの場合にTRUEを返します。
構文: AND(論理値1, 論理値2, ...)
例:
=IF(AND({score1}>=60, {score2}>=60), "両方合格", "再試験")
いずれかの引数がTRUEの場合にTRUEを返します。
構文: OR(論理値1, 論理値2, ...)
例:
=IF(OR({score1}>=80, {score2}>=80), "優秀", "標準")
式の値に一致するケースを検索し、対応する値を返します。
構文: SWITCH(式, ケース1, 値1, [ケース2, 値2, ...], [デフォルト値])
注意: 引数の総数が奇数の場合、最後の引数がデフォルト値となる。
例:
=SWITCH({grade}, "S", 100, "A", 80, "B", 60, 0)
=SWITCH({評価}, 5, "最優秀", 4, "優秀", 3, "良好", "要改善")
複数の文字列を連結して返します。
構文: CONCATENATE(文字列1, [文字列2, ...])
注意: 数値や真偽値は自動的に文字列に変換されます。
例:
=CONCATENATE("結果: ", {score}) → "結果: 85"
=CONCATENATE({lastName}, " ", {firstName}) → "田中 太郎"
=CONCATENATE("評価: ", {rating}, "点") → "評価: 4.5点"
現在の日付を返します。
構文: TODAY()
戻り値: ISO 8601形式の日付テキスト(”YYYY-MM-DD”)
例:
=TODAY() → "2025-01-16"
年・月・日から日付を作成します。
構文: DATE(年, 月, 日)
例:
=DATE(2024, 4, 1) → "2024-04-01"
2つの日付間の差を指定した単位で返します。
構文: DATEDIF(開始日, 終了日, 単位)
単位オプション:
単位 | 説明 |
|---|---|
| 満年数 |
| 満月数 |
| 日数 |
| 年を除いた満月数(0〜11) |
| 年を除いた日数(0〜365) |
| 年と月を除いた日数(0〜30) |
例:
=DATEDIF({employee.hire_date}, TODAY(), "Y") → 勤続満年数
=DATEDIF({employee.hire_date}, TODAY(), "M") → 勤続満月数
=DATEDIF("2023-04-15", "2025-12-19", "Y") → 2
日付から年を抽出します。
構文: YEAR(日付)
例:
=YEAR({employee.hire_date}) → 2020
日付から月を抽出します。
構文: MONTH(日付)
戻り値: 1〜12
例:
=MONTH(TODAY()) → 1
日付から日を抽出します。
構文: DAY(日付)
戻り値: 1〜31
例:
=DAY({employee.hire_date}) → 15
2つの日付間の日数を返します。
構文: DAYS(終了日, 開始日)
例:
=DAYS(TODAY(), {employee.hire_date}) → 入社からの経過日数
フィールドタイプ | 値 | 未入力時の扱い |
|---|---|---|
数値入力 | 入力された数値 | 0 |
文字列入力 | 入力された文字列 | 空文字 |
テキストエリア | 入力された文字列 | 空文字 |
プルダウン | 選択されたオプションの値 | 空値 |
ラジオボタン | 選択されたオプションの値 | 空値 |
自動計算 | 計算結果 | - |
参照できないフィールドタイプ: - ファイルアップロード - 目標連携 - 後ろに配置された自動計算フィールド
同じフォーム内:
={score}
={field1} + {field2}
前フェーズのフォーム:
={first.total_score}
={second.rating}
参照構文 | 説明 | 型 |
|---|---|---|
| 入社日 | 日付 |
例:
=DATEDIF({employee.hire_date}, TODAY(), "Y") → 勤続年数
※重要※ : 評価サイクルのフェーズ設定で等級を非開示に設定していても利用可能ですので取り扱いに十分ご注意ください。
参照構文 | 説明 | 型 |
|---|---|---|
| 現在の等級のキー | 文字列 |
| 等級体系のキー | 文字列 |
例:
=SWITCH({employee.grade_key}, "M1", 1.2, "M2", 1.1, "S1", 1.0, "S2", 0.9, 1.0)
=IF({employee.grade_group_key} = "management", {score} + 10, {score})
※重要※ : 評価サイクルのフェーズ設定で等級を非開示に設定していても利用可能ですので取り扱いに十分ご注意ください。
参照構文 | 説明 | 型 |
|---|---|---|
| 補足指標の値 | 数値/文字列 |
例:
={employee.supplemental_metric.sublevel}
=IF({employee.supplemental_metric.sublevel} >= 3, 1.1, 1.0)
※重要※ : 評価サイクルのフェーズ設定で報酬を非開示に設定していても利用可能ですので取り扱いに十分ご注意ください。
参照構文 | 説明 | 型 |
|---|---|---|
| 報酬指標の金額/数量/テキスト | 数値/文字列 |
| 報酬指標の通貨コード | 文字列 |
| 報酬指標の単位 | 文字列 |
例:
={employee.compensation.base_salary} → 現在の基本給
={new_base_salary} - {employee.compensation.base_salary} → 昇給額
={employee.compensation.base_salary} * 12 + {employee.compensation.bonus} → 年収
参照構文 | 説明 | 型 |
|---|---|---|
| 給与テーブルの基本給下限 | 数値 |
| 給与テーブルの基本給上限 | 数値 |
例:
={employee.salary_band.base_salary_min}
=({employee.salary_band.base_salary_min} + {employee.salary_band.base_salary_max}) / 2 → 中央値
=IF(AND({employee.compensation.base_salary} >= {employee.salary_band.base_salary_min}, {employee.compensation.base_salary} <= {employee.salary_band.base_salary_max}), "レンジ内", "レンジ外")
# スコアの合計
=SUM({score1}, {score2}, {score3})
# スコアの平均
=AVERAGE({score1}, {score2}, {score3})
# スコアの平均を小数第1位で四捨五入
=ROUND(AVERAGE({score1}, {score2}, {score3}), 1)
# 加重平均
=({score1} * 0.3 + {score2} * 0.5 + {score3} * 0.2)
# 80点以上なら"合格"、未満なら"不合格"
=IF({score}>=80, "合格", "不合格")
# スコアに応じたランク付け
=IFS({score}>=90, "S", {score}>=80, "A", {score}>=70, "B", {score}>=60, "C", TRUE, "D")
# 等級に応じた係数
=SWITCH({employee.grade_key}, "M1", 1.2, "M2", 1.1, "S1", 1.0, "S2", 0.9, 1.0)
# 勤続満年数
=DATEDIF({employee.hire_date}, TODAY(), "Y")
# 勤続年月を文字列で表示
=CONCATENATE(DATEDIF({employee.hire_date}, TODAY(), "Y"), "年", DATEDIF({employee.hire_date}, TODAY(), "YM"), "ヶ月")
# 勤続3年以上なら評価に補正
=IF(DATEDIF({employee.hire_date}, TODAY(), "Y") >= 3, {score} * 1.1, {score})
# 昇給額
={new_base_salary} - {employee.compensation.base_salary}
# 昇給率(パーセント)
=({new_base_salary} / {employee.compensation.base_salary} - 1) * 100
# 年収の計算
={employee.compensation.base_salary} * 12 + {employee.compensation.bonus}
# 給与レンジの中央値
=({employee.salary_band.base_salary_min} + {employee.salary_band.base_salary_max}) / 2
# コンパレシオ(給与レンジ内での位置)
=({employee.compensation.base_salary} - {employee.salary_band.base_salary_min}) / ({employee.salary_band.base_salary_max} - {employee.salary_band.base_salary_min}) * 100
# 等級と勤続年数を組み合わせた評価係数
=IF(AND({employee.grade_group_key} = "management", DATEDIF({employee.hire_date}, TODAY(), "Y") >= 5), 1.3, 1.0)
# 前フェーズのスコアを参照した最終スコア
=ROUND(({first.total_score} * 0.3 + {second.total_score} * 0.7), 1)
# 結果の文字列表示
=CONCATENATE({employee.grade_key}, " (", {score}, "点): ", IF({score}>=80, "合格", "不合格"))
計算式の評価中にエラーが発生した場合、以下のエラー値が表示されます。
エラー値 | 発生条件 | 例 |
|---|---|---|
| ゼロ除算 |
|
| 引数の型が不正 |
|
| 存在しないフィールドを参照 |
|
| 未サポートの関数名 |
|
| 構文が無効 |
|
| 数値が有効範囲外 | オーバーフロー |
| 一致する値が見つからない |
|
文脈 | 扱い |
|---|---|
算術演算 | 0として扱う |
文字列連結 | 空文字として扱う |
比較演算 | 0または空文字として扱う |
集計関数 | 無視する(カウントしない) |
論理関数 | FALSEとして扱う |
有効数字は15桁が上限です
浮動小数点の誤差(例:
0.1 + 0.2 ≒ 0.30000000000000004)は許容されます表示時にROUND等で端数処理することを推奨します
自動計算フィールドは、同じフォーム内で前に配置されたフィールドのみ参照できます
循環参照(A→B→A)は許可されません