Posted in

Excel 関数:FIND、FINDB

はい、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バイト目)

❗ 違いまとめ(表)

特徴FINDFINDB
単位文字数(1文字単位)バイト数(1 or 2 バイト)
全角対応○(1文字)○(2バイト)
英語環境での使用✕(無効または常に1バイト扱い)
言語依存なしあり(マルチバイト言語設定時)

📝 注意点

  • FIND / FINDB大文字・小文字を区別します。
    → 区別しない検索をしたい場合は SEARCH / SEARCHB を使います。
  • FINDB はマルチバイト文字にしか意味がないため、日本語・中国語の環境でなければ違いが出ません

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です