はい、FIND 関数と FINDB 関数はどちらも Excel で文字列中から特定の文字列を探すために使われますが、扱いが異なる点があります(特に全角・半角やマルチバイト文字の取り扱いで違いがあります)。
🔍 FIND 関数(標準:文字数ベース)
📌 構文
=FIND(find_text, within_text, [start_num])
| 引数 | 説明 |
|---|
find_text | 検索する文字または文字列 |
within_text | 探す対象の文字列 |
start_num(省略可) | 検索開始位置(1以上) |
✅ 特徴
- 1文字 = 1カウント(全角も半角も1文字として数える)
- 大文字と小文字を区別する
- 見つかった文字の位置(文字単位)を返す
- 見つからないと
#VALUE! エラー
🧾 例
=FIND("本", "日本語")
→ 2
=FIND("a", "Apple")
→ #VALUE!(大文字と小文字を区別する)
=FIND("p", "Apple")
→ 2
🉑 FINDB 関数(バイト数ベース、日本語や中国語などマルチバイト環境で使用)
📌 構文
=FINDB(find_text, within_text, [start_num])
| 引数 | 説明 |
|---|
find_text | 探す文字や文字列 |
within_text | 対象の文字列 |
start_num(省略可) | 検索開始のバイト位置(1以上) |
✅ 特徴
- 1バイト文字(英字や数字)= 1バイト
2バイト文字(日本語など全角)= 2バイト - Windows の「言語設定が日本語や中国語などのマルチバイト言語の場合のみ」有効
- 検索位置や結果もバイト数で返される
🧾 例
=FINDB("本", "日本語")
→ 3(「日」=2バイト、「本」は3バイト目に始まる)
=FINDB("p", "Apple")
→ 2(A=1バイト, p=2バイト目)
❗ 違いまとめ(表)
| 特徴 | FIND | FINDB |
|---|
| 単位 | 文字数(1文字単位) | バイト数(1 or 2 バイト) |
| 全角対応 | ○(1文字) | ○(2バイト) |
| 英語環境での使用 | ○ | ✕(無効または常に1バイト扱い) |
| 言語依存 | なし | あり(マルチバイト言語設定時) |
📝 注意点
FIND / FINDB は 大文字・小文字を区別します。
→ 区別しない検索をしたい場合は SEARCH / SEARCHB を使います。FINDB はマルチバイト文字にしか意味がないため、日本語・中国語の環境でなければ違いが出ません。
Post Views: 83