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

2019年9月5日

文字列中に指定した文字が

何文字目に存在するかを検索する

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は一つ必要です)

この方法の場合、

対象の最も後ろにヒットする

(結果の文字数が多い)

検索文字列の開始位置が結果となります。

配列数式を使うと

コピー&ペーストが出来ませんが

オートフィルであれば複製可能です。

配列数式を使用した結果

利点

検索文字列が増えても

セル範囲を広げるだけのため

数式が短いままで

読みやすいものになります。

方法さえ知っていれば

IFERRORを重ねるより

作る手間が少ないのも利点です。

欠点

配列数式自体を知っている人は

少数派のためぱっと見、

数式の意味がわからないことが

多いのが欠点です。

また間違えてセル入力モードにして

普通にENTERをすると

配列数式が解除されてしまい

セル範囲の最初の検索文字列のみが

対象となってしまう点にも

注意が必要です。

関連記事

FIND関数の応用例

FIND・FINDB関数で右(後ろ)からN文字目の検索する方法

FIND関数で2つ目以降の位置を取得する方法

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

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

指定の文字が何文字目にあるかを調べる (FIND関数)

指定の文字が何バイト目にあるかを調べる (FINDB関数)

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

フォローする