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

# AI テーブル FIND 関数の使用

> 📌 さらに多くの関数については、数式関数一覧を参照してください。

> 📌 さらに多くの関数については、[数式関数一覧](/ja/aitable/formulas/function-reference)を参照してください。

# 1 関数の基本紹介

**FIND** は AI テーブルでよく使用される関数で、指定した位置から特定の値を検索し、最初に出現した位置を返します。値が存在しない場合は -1 を返します。

### **基本構文**

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
FIND(検索する値, 検索範囲, [開始位置])

```

* **検索する値**：検索する値（大文字と小文字を区別）
* **検索範囲**：検索する範囲。値、データ群、またはデータテーブル内のフィールドを指定します。
* **開始位置**：検索を開始する位置。デフォルトは 1 から開始します。

### **例**

\[フィールド 1] の最初のレコードの内容が **"Hello World"** だとします。

#### **例 1：部分文字列 "World" の開始位置を検索**

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
FIND("World", [フィールド 1])
```

このレコードの結果：**7**（"World" は 7 文字目から始まるため）

#### **例 2：8 文字目から部分文字列 "o" を検索**

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
FIND("o", [フィールド 1], 8)
```

結果：**9**（8 文字目から数えて、最初の "o" は 9 文字目に出現するため）

**FIND** 関数を使用すれば、テキスト内の特定箇所を素早く特定でき、テキスト処理やデータ分析に非常に役立ちます。なお、**FIND** 関数は大文字と小文字を区別します。区別が不要な場合は、代わりに **SEARCH** 関数を使用できます。

# 2 一般的なシーンの事例

### 2.1 文字を使った列分割

図のように、フィールドが「日付 - 場所 - 店舗名」の 3 つの部分から構成されているとします。「-」を基準に日付と「場所 - 店舗名」を分割したい場合、以下の数式を使用できます。

```純テキスト title="MID([レコード名],FIND(%22-%22,[レコード名],1)+1,len([レコード名])" theme={"theme":{"light":"github-light","dark":"github-dark"}}
MID([レコード名],FIND("-",[レコード名],1)+1,8)
```

### 2.2 文字を使った判定

要件として、商品紹介にアレルゲンを詳細に明記する必要があります。FIND 関数を使えば、各紹介にアレルゲンが記載されているかを判定できます。

```text theme={"theme":{"light":"github-light","dark":"github-dark"}}
IFERROR（FIND("アレルゲン",[商品紹介],1),"アレルゲン表示なし❌"）
```

### 2.3 ある文字の置換

商品紹介内の「口味」をすべて「風味」に置き換えます。

```純テキスト theme={"theme":{"light":"github-light","dark":"github-dark"}}
REPLACE([商品紹介], FIND("口味", [商品紹介]), LEN("口味"), "風味")
```
