【EXCEL:FIND・FINDB関数】指定した文字が何文字目・何バイト目か知りたい

指定した文字が何文字目・何バイト目か知りたい

困っている女性

セルに入力されている文字列のなかに、指定した文字が何文字目か調べる関数ってないの?
ありますよ。検索文字列が何文字目か調べるFIND関数、検索文字列が何バイト目か調べるFINDB関数の2つがあるよ。

解決する男性

困っている女性

使い方は簡単なの?
もちろん、簡単だよ。

解決する男性

困っている女性

それじゃあ、早く教えてよ。

 

この記事では、入力されている文字列から検索文字列が何文字目か調べるFIND関数、検索文字列が何バイト目か調べるFINDB関数について説明します。

 

すでに入力されている文字列に、検索文字列が含まれているか調べる場面は幾度となくあります。

 

そういうときに役に立つFIND関数およびFINDB関数の使い方を覚えてしまいましょう。

 

以下の記事ではFIND関数と似たような文字数を指定して文字列を操作するLEFT関数・MID関数・RIGHT関数について説明しています。

【EXCEL:LEFT・MID・RIGHT関数】文字列から指定した文字数分の文字を抜き出したい

また、以下の記事ではFINDB関数と似たようなバイト数を指定して文字を抜き出すLEFTB関数・MIDB関数・RIGHTB関数について説明しています。

【EXCEL:LEFTB・MIDB・RIGHTB関数】文字列から指定したバイト数分の文字を抜き出したい

以下の記事では、入力されている文字列の文字数やバイト数を返すLEN関数・LENB関数について説明しています。

【EXCEL:LEN・LENB関数】文字列の文字数・バイト数を求めたい

以下の記事では、検索文字列を検索し、置換文字列で置き換えるSUBSTITUTE関数について説明しています。

【EXCEL:SUBSTITUTE関数】指定した文字を検索し指定した文字で置き換えたい

 

それでは、FIND関数について説明します。

FIND関数の使い方

FIND関数は、以下のように指定します。

=FIND(検索文字列,対象,開始位置)

 

対象開始位置から検索文字列を検索します。何文字目に検索文字列が存在するか返します。

FIND関数の説明

FIND関数は、3つの引数を指定します。

 

1つ目は、検索したい文字列を指定します。
検索文字列がはじめて見つかった文字数位置を返します。
セル番地を指定すれば、そのセルに入力されている文字列が対象となります。
関数に直接文字列をダブルクォーテーションで囲んで指定することもできます。

 

2つ目は、検索対象の文字列を指定します。
セル番地を指定すれば、そのセルに入力されている文字列が対象となります。
関数に直接文字列をダブルクォーテーションで囲んで指定することもできます。

 

3つ目は、検索の開始位置を数字で指定します。
セル番地を指定すれば、そのセルに入力されている文字列が対象となります。
関数に直接文字列をダブルクォーテーションで囲んで指定することもできます。

 

以下の図では、セルA2に入力されている検索文字列を、セルB2に入力されている対象の、セルC2に入力されている開始位置から検索します。
検索文字列が何文字目か返すようにFIND関数が指定されています。

FIND関数の使用例

FIND関数の使用例

セルD2には、「4」が表示されています。
「あいうおかきくけこ」の4文字目に存在することを意味しています。

セルD3には、「6」が表示されています。
「あいうえおきくけこ」の5文字目「お」から検索開始しています。

セルD6には、「#VALUE!」が表示されています。(エラーを意味します。)
検索文字列「さ」が「あいうえおかきくけこ」に存在しないため、エラーが表示されています。

セルD7 には、「1」が表示されています。
検索文字列に空(””)を指定した場合、開始位置に指定した値が返されます。

 

FINDB関数の使い方

FINDB関数は、以下のように指定します。

=FINDB(検索文字列,対象,開始位置)

 

対象開始位置から検索文字列を検索します。何バイト目に検索文字列が存在するか返します。

FINDB関数の説明

FINDB関数は、3つの引数を指定します。

 

1つ目は、検索したい文字列を指定します。
検索文字列がはじめて見つかったバイト数位置を返します。
セル番地を指定すれば、そのセルに入力されている文字列が対象となります。
関数に直接文字列をダブルクォーテーションで囲んで指定することもできます。

 

2つ目は、検索対象の文字列を指定します。
セル番地を指定すれば、そのセルに入力されている文字列が対象となります。
関数に直接文字列をダブルクォーテーションで囲んで指定することもできます。

 

3つ目は、検索の開始位置を数字で指定します。
セル番地を指定すれば、そのセルに入力されている文字列が対象となります。
関数に直接文字列をダブルクォーテーションで囲んで指定することもできます。

 

以下の図では、セルA2に入力されている検索文字列を、セルB2に入力されている対象の、セルC2に入力されている開始位置から検索します。
検索文字列が何バイト目か返すようにFINDB関数が指定されています。

FINDB関数の使用例

FINDB関数の使用例

セルE2には、「7」が表示されています。
「あいうおかきくけこ」の7バイト目に存在することを意味しています。
全角文字は1文字が2バイトでカウントされますので、「あいう」(6バイト)の次に当たる7バイト目に「え」が見つかったからです。

セルE3には、「11」が表示されています。
「あいうえおきくけこ」の5バイト目「う」から検索開始しています。
「あいうえお」(10バイト)の次に当たる11バイト目に「か」が見つかったからです。

セルE6には、「#VALUE!」が表示されています。(エラーを意味します。)
検索文字列「さ」が「あいうえおかきくけこ」に存在しないため、エラーが表示されています。

セルE7 には、「1」が表示されています。
検索文字列に空(””)を指定した場合、開始位置に指定した値が返されます。

 

検索文字列、対象、開始位置をいろいろ変えてみて、結果がどう変わるか試してみましょう。

 

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です