【Excel】FIND関数で複数の位置を調べる

【Excel】FIND関数で複数の位置を調べる

2020.10.23  などの日付があり、月の「10」を抽出したい場合のやり方を紹介します。

通常は、MID関数で以下のような数式を入力すると抽出することが可能です。

=MID(A3,6,2)

しかし、月が一桁の場合に上手くいきません。




FIND関数を使って複数の位置を調べる

そこで、まずFIND関数で月の数字が文字列の何番目にあるかを確認します。

 

最初の” . “の位置を確認するために、任意の場所に

=FIND(".",A3) 

を入力します。・・・①

すると「5」が返されます。文字列の5番目に” . “があることが分かります。

 

→そのため、月の数字が始まる文字数は、最初の” . “の次から始まるので、

=FIND(".",A3)+1  

となります。

「6」が返されます。

 

次に2番目の” . “の位置を確認します。ここで問題となるのは、「2020.10.23」という文字列には” . “が2つあるため、通常のFIND関数で検索すると最初の” . “の位置である「5」が返されてしまいます。

FIND関数は、

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

で表されるため、「開始位置」を設定して問題を解決できます。

開始位置を最初の” . “の位置以降、すなわち、=FIND(“.”,A3) +1 をします。

開始位置を設定して、改めて2番目の” . “の位置を確認するために、

=FIND(".",A3,FIND(".",A3)+1) 

を入力します。・・・②

これで「8」が返されます。つまり2番目の” . “の位置は文字列の8番目にあることが分かります。

 

次に、” . “と” . “の間の文字数を確認するために

最初の” . “の位置)-(2番目の” . “の位置)-1

② ー ① ー 1 をして、

=FIND(".",A3,FIND(".",A3)+1)-FIND(".",A3)-1 

と入力します。

すると「2」が返されます。

 

これでMID関数を使う準備ができました。MID関数は、

=MID(文字列,開始位置,文字数) で表されます。

そのため、上で確認した数式を入力すると、

=MID(A3,FIND(".",A3)+1,FIND(".",A3,FIND(".",A3)+1)-FIND(".",A3)-1)

となります。

これで「2020.10.23」から「10」が抽出されました。

 



コメントを残す

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