> ## Documentation Index
> Fetch the complete documentation index at: https://help.teable.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 数式

> 他のフィールドを参照し、数式を使ってテキスト、数値、日付、論理条件を計算します。

数式フィールドは、同じレコードにある他のフィールドから結果を計算します。算術演算、テキストの結合、日付計算、条件ロジックを処理できます。繰り返し使用する計算ルールをフィールドにする場合に使用します。

## ユースケース

| シナリオ   | 適した用途                            |
| ------ | -------------------------------- |
| 自動計算   | 数量、単価、割引などのフィールドから合計金額、利益、スコアを計算 |
| テキスト処理 | テキストの結合、コンテンツの抽出、区切り文字による情報の解析   |
| 日付処理   | 日付の差の計算、期間の確認、将来の日付の生成           |
| 条件ロジック | ステータス、ヒント、カテゴリなど、条件に基づいて異なる結果を返す |

## 数式の基本

### データ型

数式を記述する前に、計算で使用するフィールドの型を確認してください。型によって、対応する演算や関数が異なります。

| 型    | 説明               | 一般的な用途       |
| ---- | ---------------- | ------------ |
| 数値   | 整数または小数          | 算術、ロールアップ、比較 |
| テキスト | 文字列値             | 結合、抽出、置換、分割  |
| 日付   | 日付または日時の値        | 期間の計算、日付の比較  |
| ブール値 | `TRUE`または`FALSE` | 条件と論理演算      |

### フィールドを参照する

数式では、フィールド名を使って別のフィールドを参照します。フィールド名を`{}`で囲み、実際のフィールド名と一致させてください。

```js theme={null}
{Unit price} * {Quantity}
```

### 演算子

| 演算子 | 用途                   |
| --- | -------------------- |
| `+` | 数値の和を計算するか、文字列を結合します |
| `-` | 数値の差を計算します           |
| `*` | 数値の積を計算します           |
| `/` | 数値の商を計算します           |
| `%` | 余りを計算します             |

## 関数と式

### 一般的な関数

関数は特定の処理を実行します。たとえば、`SUM`は合計を計算し、`LEFT`はテキストの先頭から文字を抽出し、`TEXTBEFORE`は区切り文字より前のテキストを抽出し、`TEXTSPLIT`は区切り文字でテキストを分割します。

その他の関数については、[数式チートシート](/ja/basic/field/formula/cheat-sheet)を参照してください。

### テキスト処理

| 操作      | 関数の例                              | 説明                    |
| ------- | --------------------------------- | --------------------- |
| テキストを結合 | `&`、`CONCATENATE`                 | 2つ以上のテキスト値を結合します      |
| テキストを抽出 | `LEFT`、`RIGHT`、`MID`、`TEXTBEFORE` | 文字列の一部を抽出します          |
| テキストを分割 | `TEXTSPLIT`                       | 区切り文字でテキストを複数の値に分割します |

### 論理条件

条件に基づいて異なる値を返すには、`IF`関数を使用します。

```js theme={null}
IF(condition, value_if_true, value_if_false)
```

フィールドが空かどうかを確認する場合は、`BLANK()`と比較します。たとえば、`IF({Weight}=BLANK(), 1, 2)`は数値フィールドが空の場合に`1`を、それ以外の場合に`2`を返します。

### 複雑な式

複雑な数式には、複数の関数、フィールド参照、演算子を含められます。計算順序を制御するには括弧を使用します。

```js theme={null}
({Unit price} * {Quantity}) * (1 - {Discount})
```

## 結果の表示とメンテナンス

### 書式設定とインタラクティブ表示

数式の結果には、パーセンテージ、進捗バー、アイコンスタイルなどの[書式設定](/ja/basic/field/common/formatter)と[インタラクティブ表示](/ja/basic/field/common/show-as)も使用できます。利用できるオプションは、数式の結果タイプによって異なります。

### デバッグと最適化

* **データ型を確認**：演算や関数で正しいデータ型が使用されていることを確認します。
* **フィールド参照を確認**：フィールド名が正しく記述されていることを確認します。
* **段階的にテスト**：複雑な数式を小さな部分に分け、それぞれを個別にテストします。
* **計算の重複を避ける**：同じ計算を複数箇所で使用する場合は、結果を別のフィールドに保存することを検討します。
