文字列の中から数字を取り出す(数字が中間にある時)

文字列の中から数字を取り出したいときに、数字が前部分にある、もしくは後ろ部分にある、というときなら簡単に取り出せますが、(ご参考)
「文字列の中間に数字がある」という場合はちよっと難しくなりませんか?

文字列の中間から数字を抽出したい時は以下のような関数をお試しください。




 

=VALUE(MID(A1,MIN(SEARCH({1,2,3,4,5,6,7,8,9,0},A1&1234567890)),LEN(A1)-(LENB(A1)-LEN(A1))))

0720_1

文字数に関係なく取り出せます。

・MID 文字列内で指定した位置から指定した数だけ文字を抽出します。
・MIN 指定した中から一番小さい数値を返します。
・SEARCH 指定した文字を探し、その文字が最初から何番目にあるか返します。
・LEN セル内の文字数を返します。
・LENB セル内の文字数を返します。半角文字は1バイト、全角文字は2バイトとします。
・VALUE 文字列として入力されてる数字を数値に変換します。

「A1&1234567890」では「A1」だけで「SEARCH」すると「1」から「0」まで全ての数値があるわけではないので「#VALUE!」エラーになります。それを避けてわざと検索させるためにくっつけています。
すると「SEARCH」したセル内で目的の数値が何番目にあるか返ってきます。
この場合「1」が4番目に並んでいるので「4」を返します。
「LEN(A1)-(LENB(A1)-LEN(A1))」では半角数字が何個あるか数えてます。

上記をふまえてまとめると、検索したセル内の文字数4番目から4つの数字を抽出して返し、返した数字を数値に変換する。

ということになります。