Excelで特定の文字が文字の○文字目から数えて何番目にあるかを探す方法を記録します。
特定の文字が何文字目にあるか探すには、「FIND」関数または「FINDB」関数を使います。
下図はExcel2016です。
< スポンサーリンク >
FIND関数、FINDB関数
FIND関数およびFINDB関数は、指定された文字列を他の文字列の中で検索し、その文字列が最初に現れる位置を左端から数え、その番号を返します。
FIND 関数は、1 バイト文字セット (SBCS) を使う言語での使用を意図したものです。FINDB 関数は、2 バイト文字セット (DBCS) を使う言語での使用を前提としています。 コンピューターの既定の言語の設定に応じて、戻り値は次のようになります。
- FIND 関数では、既定の言語の設定に関係なく、1 バイト文字も 2 バイト文字も、各文字が常に 1 つとして数えられます。
- FIND 関数では、DBCS をサポートする言語の編集を有効にした後でその言語を既定の言語として設定した場合に、各 2 バイト文字が 2 つとして数えられます。 それ以外の場合は、各文字は 1 つとして数えられます。
DBCS をサポートする言語には、日本語、簡体字中国語、繁体字中国語、および韓国語があります。
FIND(検索文字列, 対象, [開始位置])
FINDB(検索文字列, 対象, [開始位置])
検索文字列=必須。検索する文字列を指定。
対象=必須。検索文字列を含む文字列を指定。
開始位置=省略可能。検索を開始する位置を指定。対象の先頭文字から検索を開始するときは1を指定します。開始位置を省略すると、1を指定したと見なされます。
- FIND関数と FINDB関数では、大文字と小文字は区別され、ワイルドカード文字は使用できません。 大文字と小文字を区別しないで検索する必要がある場合や、ワイルドカード文字を使用する場合は、SEARCH 関数および SEARCHB 関数を使用します。
- 検索文字列に空白文字列 (“”) を指定した場合、先頭文字と一致したものと見なされ、開始位置に指定した文字番号または 1 が返されます。
- 検索文字列にワイルドカード文字を使うことはできません。
- 検索文字列が対象の中で見つからない場合、エラー値 #VALUE! が返されます。
- 開始位置に 0 以下の整数を指定した場合、エラー値 #VALUE! が返されます。
- 開始位置が対象の文字数よりも大きい場合、エラー値 #VALUE! が返されます。
- 開始位置を指定すると、指定した文字の数だけスキップすることができます。 FIND の使用例として、文字列 “AYF0093.YoungMensApparel” があるとします。 先頭のシリアル値の部分を除き、最初の “Y” が現れる位置を FIND 関数で検索するには、開始位置を 8 に設定します。 8 文字目から検索が開始され、次の文字で検索文字列が見つかるので、数値 9 が返されます。 FIND は、常に対象の先頭文字からの位置を返します。開始位置が 1 より大きい場合は、スキップする文字をカウントします。
FIND関数、FINDB関数の使用例
A1のセルに入力されている文字列から「う」が最初から何番目にあるかを探しB列に表示します。
B1 : =FIND(“う”,A1)
C1 : =FINDB(“う”,A1)
A1のセルに入力されている文字列から「う」が5文字目から何番目にあるかを探しB列に表示します。
B1 : =FIND(“う”,A1,5)
C1 : =FINDB(“う”,A1,5)
こんな記事も書いています