Excel FIND関数に複数の検索条件を指定する方法

2020年5月17日

文字列中に指定した文字が何文字目に存在するかを検索する

FIND関数は検索文字列として一つの文字しか指定できません。

当記事では複数の文字列を検索対象とする方法を

IFERROR関数を重ねる方法」と「配列数式を使用する方法」の

2種類に分けて紹介します。

手順

IFERROR関数を重ねる方法

FIND関数は対象がないと#VALUEエラーを返すので

それをIFERROR関数で取得しエラーであれば

次のFIND関数を指定する方法です。

=IFERROR(FIND(検索文字列1,対象),IFERROR(FIND(検索文字列2,対象),……))

もっとも左に指定した検索文字列の文字数が数式の結果となります。

IFERROR関数を重ねた結果

利点

後述の配列数式と違い、ありふれた関数の使い方のため

他の人や期間が経った時に数式を読む際、非常に理解しやすいのが利点です。

欠点

検索文字列が多くなると数式が長く、読みづらくなり変更も大変になります。

配列数式を使用する方法

配列数式を使用するとIFERROR関数を重ねずに検索文字列をセル範囲で一括で指定できます。

=MAX(IFERROR(FIND(検索文字列の範囲,対象),0))

この状態で[Ctrl]+[Shift]+[Enter]と押すと数式が{}で囲まれて配列数式の状態になります。

{}をキーボードで打っても配列数式にはなりません。

配列数式にすると範囲で指定した検索文字列のFIND関数を全て試し、

MAX関数で最大の結果が取得されます。(#VALUEを除くためIFERROR関数は一つ必要です)

この方法の場合、対象の最も後ろにヒットする検索文字列の開始位置が結果となります。

配列数式を使うとコピー&ペーストが出来ませんがオートフィルであれば複製可能です。

配列数式を使用した結果

もしスピルが実装されている新しいバージョンのExcelやOffice365では

[Enter]のみで確定し、通常のセルコピーをすれば正常に動作します。

スピルのバージョンの例

利点

検索文字列が増えてもセル範囲を広げるだけのため

数式が短いままで読みやすいものになります。

方法さえ知っていればIFERROR関数を重ねるより作る手間が少ないのも利点です。

欠点

配列数式自体を知っている人は少数派のためぱっと見、

数式の意味がわからないことが多いのが欠点です。

また間違えてセル入力モードにして普通にENTERをすると

配列数式が解除されてしまいセル範囲の最初の検索文字列のみが

対象となってしまう点にも注意が必要です。

スピルのバージョンの場合、後者の欠点は存在しません。

関連記事

FIND関数の使い方・活用方法の記事一覧

記事内で使用した機能の詳細

配列数式の利用方法とメリット・デメリット

各種エラーの発生条件と判定関数