更新日:、 作成日:
エクセル FIND 関数:文字列の位置を検索する
はじめに
エクセルの FIND 関数の使い方を紹介します。
FIND 関数は検索ワードが見つかった位置を取得します。
=FIND("A","ABC") のようにして、A を ABC から検索して 1 を取得できます。
=FIND("A","ABA",FIND("A","ABA")+1) のようにして、2 番目の A を検索して 3 を取得できます。
検索ワードが見つからないときはエラー #VALUE! になります。
大文字小文字を区別して検索します。ワイルドカードを使用できません。
FIND 関数の引数
FIND(検索ワード, 検索対象)
検索対象から検索ワードが最初に見つかった位置を取得します。
FIND(検索ワード, 検索対象, 開始位置)
検索対象の開始位置から検索します。
引数「検索ワード」 | 検索する文字列を指定します。 | スピル化 |
引数「検索対象」 | 検索対象となる文字列を指定します。この文字列の中から引数「検索ワード」が最初に見つかった位置が取得されます。 | スピル化 |
引数「開始位置」 | 省略できます。省略すると 1 が指定されます。 検索を開始する位置を指定します。最初の文字から検索するときは 1 を指定します。 | スピル化 |
スピル化:セルの範囲や配列を指定すると結果が「スピル」します。
使い方
FIND 関数の使い方を紹介します。
1 文字の検索ワードを検索する
A をセル「B3」の検索対象から検索します。
複数文字の検索ワードを検索する
複数文字の検索ワードを検索対象から検索します。
開始位置を指定して検索する
A を A2A45 から開始位置を指定して検索します。
検索ワードが空文字のときは開始位置を返します。
何番目を検索する
2 番目の A を A2A4A から検索します。引数「開始位置」に最初に検索した 結果 + 1 を入力して、2 番目の検索ワードを検索できます。
=FIND(B3,C3,FIND(B3,C3)+1)
=FIND(B3,C3,FIND(B3,C3,FIND(B3,C3)+1)+1)
何番目を指定するには下記の「高度な使い方」をご覧ください。
スポンサーリンク
高度な使い方
FIND 関数と他の関数を組み合わせた使い方などを紹介します。
改行を検索する
セル内の改行文字を入力するには「CHAR 関数」を使用します。CHAR(10) がセル内の改行文字です。
他にも「CHAR 関数」を使用して、タブ文字など特殊文字を入力できます。
特定の文字で始まるか検索する
名前が E から始まるか検索します。「IFERROR 関数」を使用して、始まらないときに FALSE にできます。
=IFERROR(FIND("E",B4)=1,FALSE)
結果が 1 のとき、その文字から始まります。
右から検索する
最後の文字から左に向かって検索するには文字列を反転します。反転するには「スピル」を使用します。
「MID 関数」と「SEQUENCE 関数」を使用して、文字列を 1 文字ずつ逆から抽出します。それを「TEXTJOIN 関数」を使用して結合します。
「LEN 関数」を使用して文字数を取得します。反転した文字列を FIND 関数で検索して 文字数 - 結果 + 1 が後ろから検索した位置になります。
何番目を指定して検索する
ラムダを使用して何番目の検索ワードを検索するには「REDUCE 関数」を使用します。複雑なので詳細は関数のページをご覧ください。
LAMBDA(total,x,
FIND($B$3,$C$3,total+1)))
「SEQUENCE 関数」にループする回数を入力して、その数だけ FIND 関数を実行します。その 結果 + 1 を次の FIND 関数の引数「開始位置」に指定して、何番目の検索ワードを検索します。
SEQUENCE(B5) の部分に何番目の検索ワードを検索するかを入力します。
total+1 の部分で前回の検索結果 + 1 を開始位置にしています。
解説
大文字小文字を区別して検索します。ワイルドカードは使用できません。大文字小文字を区別しないときや、ワイルドカードを使用して検索するには「SEARCH 関数」を使用します。
引数「検索ワード」が引数「検索対象」の先頭の文字にあるときは 1 を返します。
引数「検索ワード」が引数「検索対象」に複数存在するときは、左から検索して最初に見つけた文字の位置を返します。
引数「検索ワード」が空文字 "" や空のセルのときは、引数「開始位置」の値が返されます。引数「開始位置」を省略しているときは 1 です。
引数「検索ワード」が見つからなかったときはエラー #VALUE! になります。
引数「開始位置」が 0 以下や引数「検索対象」の文字数より大きいときはエラー #VALUE! になります。
スポンサーリンク