FIND、FINDB関数

Excel 2007+

概要

FIND関数は指定した文字列を別の文字列内で検索し、大文字小文字を区別して最初に一致する位置を返します。FINDB関数はマルチバイト文字環境向けの旧バージョンですが、現在は非推奨です。

構文

FIND(検索文字列, 対象文字列, [開始位置])

パラメータ

パラメータ タイプ 必須 説明
検索文字列 文字列 はい 検索対象の文字列。引用符で囲む必要があります。
対象文字列 文字列 はい 検索を行う文字列。セル参照も可能。
開始位置 数値 いいえ 検索開始位置(1以上)。省略時は1から検索。

FIND, FINDB関数の使用

FIND関数はテキスト文字列内の特定位置を特定するために使用されます。MIDやRIGHT関数と組み合わせて文字列を分割したり、条件付き処理に活用できます。大文字小文字を区別する必要がある場面で特に有用です。

FIND, FINDBの一般的な例

基本的な文字位置検索

=FIND("M",A1)

セルA1内で最初に現れる'M'の位置を返します(Miriam McGovernの場合、1)

小文字検索

=FIND("m",A1)

セルA1内で最初に現れる'm'の位置を返します(Miriam McGovernの場合、6)

開始位置指定

=FIND("M",A1,3)

セルA1の3文字目以降で最初に現れる'M'の位置(Miriam McGovernの場合、8)

文字列抽出

=MID(A2,1,FIND("#",A2)-1)

製品名から#以降を除いた名前部分を抽出(セラミック絶縁器)

よくある質問

FINDは大文字小文字を区別しワイルドカード不可、SEARCHは区別せずワイルドカード対応です。

省略すると自動的に1から検索が開始されます。

#VALUE!エラーが返されます。

一般的なエラーと解決策

#VALUE!エラー

Cause: 検索文字列が対象文字列に存在しない

Solution: 正しい文字列を入力するか、SEARCH関数を検討

#VALUE!エラー

Cause: 開始位置が0以下または文字列長を超える

Solution: 開始位置を1〜文字列長の範囲で指定

#VALUE!エラー

Cause: ワイルドカード文字(*)を使用

Solution: ワイルドカードを使いたい場合はSEARCH関数を使用

注記

  • FINDB関数は非推奨です。Unicode対応のFIND関数を使用してください。
  • 常に1文字から位置をカウント(バイト単位ではなく文字単位)
  • 空文字列""を検索すると開始位置(または1)を返します
  • サロゲートペア文字も1文字として正しく処理されます

互換性

利用可能: Excel 2007, Excel 2010, Excel 2013, Excel 2016, Excel 2019, Excel 2021, Microsoft 365

利用不可:

コンテンツ最終レビュー: December 9, 2025
更新頻度: 必要に応じて
テスト済みExcelバージョン: Excel 2007+