Excel FIND関数に複数の検索文字列を指定する方法

2023年6月4日

English version.

文字位置を検索するFIND関数は検索文字列として一つしか指定できません。

ここでは複数の文字列を検索する方法を2種類、紹介します。

手順

IFERROR関数を重ねる方法

FIND関数は対象がないと#VALUEエラーを返すので、それをIFERROR関数で検知しエラーであれば、次のFIND関数を実行します。

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

複数の検索文字列に一致する場合は、最も左に指定した検索文字列の文字数が数式の結果となります。

=IFERROR(FIND("A",B3),IFERROR(FIND("D",B3),FIND("Z",B3)))
=IFERROR(FIND("Z",B4),IFERROR(FIND("D",B4),FIND("A",B4)))
=IFERROR(FIND("Z",B5),IFERROR(FIND("S",B5),FIND("A",B5)))
=IFERROR(FIND("Z",B6),IFERROR(FIND("U",B6),FIND("S",B6)))

利点

後述の配列数式やスピルと違い、一般的な関数の使い方のため、他の人や期間が経った後に数式を読む際に理解しやすいのが利点です。

欠点

検索文字列が多くなると数式が長くなります。その結果、読みづらくなり変更も難しくなります。

配列数式を使用する方法

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

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

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

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

配列数式にすると範囲で指定した検索文字列のFIND関数を全て試した上での、MAX関数で最大の結果が取得されます。(#VALUEを除くためIFERROR関数は一つ必要です)

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

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

MIN関数の場合、最も左にヒットする検索文字列の開始位置が結果となります。

=MIN(IFERROR(FIND(検索文字列の範囲,対象),"-"))

スピルが実装されているバージョンのExcelやOffice365では単純に検索文字列をセル範囲で指定します。

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

MIN関数を利用すれば最も左、MAX関数では最も右が結果になります。

=MIN(IFERROR(FIND(B3:B6,"ABCDE"),"-"))
=MAX(IFERROR(FIND(B3:B6,"ABCDE"),"-"))

利点

検索文字列が増えてもセル範囲を広げるだけのため、数式が短いままで読みやすくなります。

欠点

配列数式スピルを知っている人が少くため、数式の意味がわからないことが多いのが欠点です。

また間違えてセル入力モードにして普通にENTERをすると配列数式が解除されてしまい、セル範囲の最初の検索文字列のみが対象となってしまう点にも注意が必要です。

スピルの場合、後者の欠点は存在しません。

Excelを効率的に習得したい方へ

当サイトの情報を電子書籍用に読み易く整理したコンテンツを

買い切り950円またはKindle Unlimited (読み放題) で提供中です。

Word-A4サイズ:1,400ページの情報量で

(実際のページ数はデバイスで変わります)

基本的な使い方、関数の解説(140種類)、

頻出テクニックと実用例(109種類)、

XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピルなど便利な新機能を紹介。

体系的に学びたい方は是非ご検討ください。

アップデートなどの更新事項があれば随時反映しています。

なお購入後に最新版をダウンロードするには

Amazonへの問い合わせが必要です。

関連記事

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

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

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

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