# 数式で使える関数

- 製品: Clastly
- カテゴリ: フィールド
- 種類: リファレンス
- 最終更新日: 2026-10-29
- URL: https://www.clastly.com/ja/support/fields/formula-functions/

数式フィールドの式では、次の演算子と関数を使えます。式の中の `{価格}` のような波括弧は、フィールドの参照です。

## 演算子

式の入力画面のキーで入力します。比較の演算子は、:ui[=] のキーのメニューから選びます。掛け算と割り算は、足し算と引き算より先に計算します。先に計算したい部分は ( ) で囲みます。

| 演算子 | 説明 | 例 |
| --- | --- | --- |
| `+` | 足し算です。`sum` と同じです。 | `{価格} + {送料}` |
| `−` または `-` | 引き算です。`subtract` と同じです。 | `{価格} − {割引額}` |
| `×` または `*` | 掛け算です。`multiply` と同じです。 | `{価格} × {数量}` |
| `÷` または `/` | 割り算です。`divide` と同じです。 | `{価格} ÷ 2` |
| `=` | 両辺が等しいとき真を返します。`equal` と同じです。 | `{状態} = "完了"` |
| `≠`、`!=` または `<>` | 両辺が等しくないとき真を返します。`notEqual` と同じです。 | `{状態} ≠ "完了"` |
| `>` | 左辺が右辺より大きいとき真を返します。`greater` と同じです。 | `{在庫} > 5` |
| `≥` または `>=` | 左辺が右辺以上のとき真を返します。`greaterOrEqual` と同じです。 | `{在庫} ≥ 5` |
| `<` | 左辺が右辺より小さいとき真を返します。`less` と同じです。 | `{在庫} < 5` |
| `≤` または `<=` | 左辺が右辺以下のとき真を返します。`lessOrEqual` と同じです。 | `{在庫} ≤ 5` |

## 四則演算の関数

| 名前 | 説明 | 例 |
| --- | --- | --- |
| `sum` | 数値と数値の一覧の各要素を合計します。空の値は無視します。 | `sum({価格}, {送料}, 5)` → 価格と送料に5を加えた合計<br>`{価格} + {送料} + 5` |
| `subtract` | 1つ目の値から2つ目の値を引きます。引数のどれかが空だと、結果も空になります。 | `subtract({価格}, {割引額})` → 価格から割引額を引いた金額<br>`{価格} − {割引額}` |
| `multiply` | 値を掛け合わせます。引数のどれかが空だと、結果も空になります。 | `multiply({価格}, {数量})` → 価格に数量を掛けた金額<br>`{価格} × {数量}` |
| `divide` | 1つ目の値を2つ目の値で割ります。0で割るとエラーになります。引数のどれかが空だと、結果も空になります。 | `divide({価格}, 2)` → 価格の半分<br>`{価格} ÷ 2` |
| `modulo` | 1つ目の数を2つ目の数で割った余りを返します。0で割るとエラーになります。引数のどれかが空だと、結果も空になります。余りの符号は、割られる数と同じです。 | `modulo({数量}, 12)` → 数量を12で割った余り |
| `power` | 底を指数乗します。引数のどれかが空だと、結果も空になります。 | `power(2, 3)` → `8`（2の3乗） |

## 数値の関数

| 名前 | 説明 | 例 |
| --- | --- | --- |
| `average` | 数値と数値の一覧の各要素の平均を返します。空の値は無視します。 | `average({価格}, {送料})` → 価格と送料の平均 |
| `minimum` | 数値と数値の一覧の各要素のうち、最も小さい値を返します。空の値は無視します。 | `minimum({価格}, 1000)` → 価格と1000のうち小さい方 |
| `maximum` | 数値と数値の一覧の各要素のうち、最も大きい値を返します。空の値は無視します。 | `maximum({数量}, 1)` → 数量と1のうち大きい方 |
| `round` | 指定した小数点以下の桁数で四捨五入します。桁数は0から10までの整数で指定します。負の数は、絶対値を四捨五入します。 | `round(12.345, 2)` → `12.35` |
| `roundUp` | 指定した小数点以下の桁数で、0から離れる方向に丸めます。桁数は0から10までの整数で指定します。 | `roundUp(12.341, 2)` → `12.35` |
| `roundDown` | 指定した小数点以下の桁数で、0に近づく方向に丸めます。桁数は0から10までの整数で指定します。 | `roundDown(12.349, 2)` → `12.34` |
| `absolute` | マイナス符号を除いた値を返します。 | `absolute(-1500)` → `1500` |
| `squareRoot` | 0以上の数の平方根を返します。負の数を渡すとエラーになります。 | `squareRoot(144)` → `12` |

## 日付を求める関数

| 名前 | 説明 | 例 |
| --- | --- | --- |
| `today` | 端末のカレンダーでの今日の日付を返します。時刻は含みません。日付が変わると更新されます。 | `today()` → 今日の日付 |
| `now` | 現在の日時を返します。アプリを開いている間、おおよそ1時間ごとに更新されます。 | `now()` → 現在の日時 |
| `addMinutes` | 日時を指定した分だけ進めます。負の数を指定すると前の日時になります。時刻を含む日付だけに使えます。 | `addMinutes({予約日時}, 30)` → 予約日時の30分後の日時 |
| `addHours` | 日時を指定した時間だけ進めます。負の数を指定すると前の日時になります。時刻を含む日付だけに使えます。 | `addHours({予約日時}, 2)` → 予約日時の2時間後の日時 |
| `addDays` | 日付に暦上の日数を加算します。負の整数を指定すると前の日付になります。加える数は整数で指定します。 | `addDays({期限}, 7)` → 期限の7日後の日付 |
| `addWeeks` | 日付に週数を加算します。加える数は整数で指定します。 | `addWeeks({期限}, 2)` → 期限の2週間後の日付 |
| `addMonths` | 日付に月数を加算します。加える数は整数で指定します。 | `addMonths({期限}, 1)` → 期限の1か月後の日付 |
| `addYears` | 日付に年数を加算します。加える数は整数で指定します。 | `addYears({期限}, 1)` → 期限の1年後の日付 |

## 日付の差を求める関数

| 名前 | 説明 | 例 |
| --- | --- | --- |
| `daysBetween` | 開始日から終了日までの暦上の日数を返します。時刻は無視します。終了日が開始日より前のときは、負の数になります。 | `daysBetween({開始日}, {終了日})` → 開始日から終了日までの日数 |
| `minutesBetween` | 2つの日時の経過分数を、0に近づく方向に切り捨てて返します。両方の日付に時刻が必要です。終了日が開始日より前のときは、負の数になります。 | `minutesBetween({開始日}, {終了日})` → 開始日から終了日までの経過時間を分で表した値 |
| `hoursBetween` | 2つの日時の経過時間を、0に近づく方向に切り捨てて返します。両方の日付に時刻が必要です。終了日が開始日より前のときは、負の数になります。 | `hoursBetween({開始日}, {終了日})` → 開始日から終了日までの経過時間を時間で表した値 |
| `weeksBetween` | 2つの日付の経過週数を、0に近づく方向に切り捨てて返します。1週間未満の日数は含みません。終了日が開始日より前のときは、負の数になります。 | `weeksBetween({開始日}, {終了日})` → 開始日から終了日までの週数 |
| `monthsBetween` | 2つの日付の間に経過した月数を返します。時刻は無視して、満了した月数だけを数えます。終了日が開始日より前のときは、負の数になります。 | `monthsBetween({開始日}, {終了日})` → 開始日から終了日までに経過した月数 |
| `yearsBetween` | 2つの日付の間に経過した満年数を返します。時刻は無視して、満了した年数だけを数えます。終了日が開始日より前のときは、負の数になります。 | `yearsBetween({開始日}, {終了日})` → 開始日から終了日までの満年数 |

## 日付から年月日などを取り出す関数

| 名前 | 説明 | 例 |
| --- | --- | --- |
| `year` | 日付の年を返します。 | `year({期限})` → 期限の年 |
| `month` | 日付の月を、1から12の数で返します。 | `month({期限})` → 期限の月（1〜12） |
| `dayOfMonth` | 日付の日を、1から31の数で返します。 | `dayOfMonth({期限})` → 期限の日（1〜31） |
| `weekday` | 曜日を、1（月曜日）から7（日曜日）の数で返します。 | `weekday({期限})` → 期限の曜日（月曜日は1、日曜日は7） |
| `hour` | 日時の時を、0から23の数で返します。時刻を含む日付だけに使えます。 | `hour({予約日時})` → 予約日時の時（0〜23） |
| `minute` | 日時の分を、0から59の数で返します。時刻を含む日付だけに使えます。 | `minute({予約日時})` → 予約日時の分（0〜59） |

## テキストの関数

| 名前 | 説明 | 例 |
| --- | --- | --- |
| `join` | フィールドとテキストを1つのテキストにつなぎます。数値、日付、チェック、選択は、画面に表示される形のテキストにしてつなぎます。チェックは「はい」か「いいえ」になります。 | `join({名前}, " - ", {状態})` → 名前と状態を " - " でつないだテキスト |
| `length` | テキストの文字数、または一覧の要素数を返します。 | `length({名前})` → 名前の文字数<br>`{名前}.length()` |
| `uppercase` | テキストを大文字に変換します。 | `uppercase("Clastly")` → `"CLASTLY"`<br>`{名前}.uppercase()` |
| `lowercase` | テキストを小文字に変換します。 | `lowercase("Clastly")` → `"clastly"`<br>`{名前}.lowercase()` |
| `trim` | テキストの先頭と末尾の空白と改行を取り除きます。 | `trim("  Clastly  ")` → `"Clastly"`<br>`{メモ}.trim()` |
| `replaceAll` | 検索文字列をすべて置換後の文字列に置き換えます。検索文字列が空のときは、元のテキストをそのまま返します。 | `replaceAll({名前}, "old", "new")` → 名前に含まれるすべての "old" を "new" に置き換えたテキスト |
| `left` | テキストの左端から、指定した文字数を返します。文字数は0以上の整数で指定します。 | `left({名前}, 3)` → 名前の先頭から3文字 |
| `right` | テキストの右端から、指定した文字数を返します。文字数は0以上の整数で指定します。 | `right({名前}, 3)` → 名前の末尾から3文字 |
| `toNumber` | テキストを数値に変換します。変換できないときは値が空になります。全角の数字と、桁区切りのカンマも読み取ります。 | `toNumber("1500")` → 数値の `1500` |
| `toDateTime` | テキストを日時に変換します。変換できないときは値が空になります。`2026-10-09T09:00:00Z`、`2026-10-09`、`2026/10/09`、`2026-10-09 09:00` のような形式を読み取ります。タイムゾーンのない日時は、端末のタイムゾーンの日時として扱います。 | `toDateTime("2026-10-09T09:00:00Z")` → UTCで2026年10月9日9時の日時（表示には端末のタイムゾーンを使う） |

## 一覧の関数

| 名前 | 説明 | 例 |
| --- | --- | --- |
| `filter` | 条件に合う一覧の要素だけを残します。条件の中では、一覧の各要素を `current` で参照します。 | `[1, 2, 3].filter(current > 1)` → 2と3の一覧 |
| `map` | 一覧の各要素に式を適用します。式の中では、一覧の各要素を `current` で参照します。 | `[1, 2].map(current * 2)` → 2と4の一覧 |
| `median` | 数値と数値の一覧の各要素の中央値を返します。要素が偶数個のときは、中央の2つの値の平均です。 | `median([1, 3], 2)` → `2`（1、2、3の中央の値） |
| `flat` | 入れ子の一覧を1段だけ展開します。入れ子の一覧を数値の計算に使うときは、先に `flat` で展開します。 | `flat([[1, 2], [3]])` → 1、2、3の一覧 |

## 論理と比較の関数

| 名前 | 説明 | 例 |
| --- | --- | --- |
| `if` | 条件が真なら2つ目の値を、偽なら3つ目の値を返します。結果のタイプは、数式フィールドの結果のタイプに合わせます。 | `if({完了}, "完了", "未完了")` → 完了にチェックがあれば `"完了"`、なければ `"未完了"` |
| `and` | すべての値が真のとき、真を返します。値がない引数は偽として扱います。 | `and({完了}, {承認済み})` → 完了と承認済みの両方にチェックがあるとき真 |
| `or` | いずれかの値が真のとき、真を返します。値がない引数は偽として扱います。 | `or({完了}, {承認済み})` → 完了か承認済みのどちらかにチェックがあるとき真 |
| `not` | 値が偽のとき、真を返します。値がない引数は偽として扱います。 | `not({完了})` → 完了にチェックがないとき真 |
| `isEmpty` | 値がない、空白だけのテキスト、空の選択、空のファイル、空の一覧のとき、真を返します。数値とチェックは空になりません。 | `isEmpty({メモ})` → メモが空のとき真 |
| `contains` | テキストに検索文字列が含まれるとき、または一覧に検索値が含まれるとき、真を返します。テキストでは大文字と小文字を区別します。検索文字列が空なら、常に真です。 | `contains({名前}, "本")` → 名前に "本" が含まれるとき真 |
| `equal` | 両辺が等しいとき真を返します。数値、日付、チェック、テキストを比べられます。 | `equal({状態}, "完了")` → 状態が "完了" のとき真<br>`{状態} = "完了"` |
| `notEqual` | 両辺が等しくないとき真を返します。数値、日付、チェック、テキストを比べられます。 | `notEqual({状態}, "完了")` → 状態が "完了" 以外のとき真<br>`{状態} ≠ "完了"` |
| `greater` | 左辺が右辺より大きいとき真を返します。数値どうし、または日付どうしを比べます。 | `greater({価格}, 1000)` → 価格が1000より大きいとき真<br>`{在庫} > 5` |
| `greaterOrEqual` | 左辺が右辺以上のとき真を返します。数値どうし、または日付どうしを比べます。 | `greaterOrEqual({価格}, 1000)` → 価格が1000以上のとき真<br>`{在庫} ≥ 5` |
| `less` | 左辺が右辺より小さいとき真を返します。数値どうし、または日付どうしを比べます。 | `less({数量}, 10)` → 数量が10未満のとき真<br>`{在庫} < 5` |
| `lessOrEqual` | 左辺が右辺以下のとき真を返します。数値どうし、または日付どうしを比べます。 | `lessOrEqual({数量}, 10)` → 数量が10以下のとき真<br>`{在庫} ≤ 5` |
