この記事では「エクセルにて数字のみを抽出(抜き取り)する方法」について解説していきます。
これらの処理としては、主に
・MID関数、MIN関数、FIND関数、LEN関数の組み合わせ
・LEN関数、MID関数、IFERROR関数、CONCATENATE関数の組み合わせ
を使うと良いです。
それでは、実際のサンプルを用いて見ていきましょう。
エクセルにて数字のみを抽出(抜き取り)する方法1
エクセルにて数字のみを抽出する方法として、MID関数、MIN関数、FIND関数、LEN関数の組み合わせを利用する方法がいいです。
上記の表では、セルA1文字列から数値のみを抽出したものをセルA2に出力するものとします。
この場合は、「A2」セルに「=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&”0123456789″)),LEN(A1))」と入力します。
上の数式はかなり複雑なため、順を追って確認していきます。
使用する関数の説明
まずは関数自体の説明から見ていきましょう。
・FIND関数:検索する文字列を対象内で検索し、検索文字列が対象内で最初に現れる位置を左端から数え、その番号を返す関数であり、
=FIND(検索文字列, 対象、開始位置)
と入力していきます。
今回は、0-9の全ての数字を検索する為、検索文字列は、{0,1,2,3,4,5,6,7,8,9} と入力し、対象(※)は、A1&”0123456789″と、入力します。
(※)対象の文字がないとエラーが表示される為、文字列の後方に検索する文字をつけています。
具体的には
=FIND({0,1,2,3,4,5,6,7,8,9},A1&”0123456789″)
={10,11,12,13,9,15,8,7,6,19}
となります。(下表参照)
・MIN関数:指定された引数のうち、最小の数値を返す関数であり、
=MIN(数値1,数値2…)
と入力していきます。
今回は、
=MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&”0123456789″))
=MIN(10,11,12,13,9,15,8,7,6,19)=”6”
となります。
・LEN関数:文字列の文字数を返す関数であり、
=LEN(文字数)
と入力していきます。
今回は
LEN(A1)=LEN(abcde8764)=”9”
となります。
・MID関数:文字列の指定された位置から指定された文字数の文字を返す関数であり、
=MID(文字列, 開始位置, 文字数)
と入力していきます。
今回は
・文字列:abcde8764
・開始位置:MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&”0123456789″))=”6”
・文字数:LEN(abcde8764)=”9”
となり、
=MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},A1&”0123456789″)),LEN(A1))
=MID(“abcde8764”,”6”,”9”)
=8764
となります。
ENTERを押すと上記のように、「C2」セルに数値のみが抽出された”8764″が表示されました。
これで、エクセルにて数字のみを抽出する方法が完了です。
エクセルにて数字のみを抽出(抜き取り)する方法2
また、別の方法として、LEN関数、MID関数、IFERROR関数、CONCATENATE関数の組み合わせを使う方法があります。
上記の表では、セルA2文字列から数値のみを抽出したものをセルA3に出力するものとします。
こちらの手法では、順を追って処理していく必要があり、結論のみを先に記載できないため、一緒に見ていきましょう。
・まずは「A1」セルに「=LEN(A2)」と入力します。
LEN関数:文字列の文字数を返す関数であり、
=LEN(文字数)
と入力していきます。
今回は、
LEN(A2)=LEN(a1b2c3d4e5)=”10”
となります。
ENTERを押すと下記のように、「A1」セルに文字数”10”が表示されました。
続いて、「B1」~「K1」セルに文字数(“10”)分の番号を記述します。
さらに「B2」セルに「=MID($A2,B1,1)」と入力します。
MID関数:文字列の指定された位置から指定された文字数の文字を返す関数であり、
=MID(文字列, 開始位置, 文字数)
と入力していきます。
今回は、
・文字列:$A2=a1b2c3d4e5(文字列は固定($A2)とします。)
・開始位置:B1=1
・文字数:1
となり、=MID(“a1b2c3d4e5”,1,1)= a となります。
ENTERを押すと下記のように、「B2」セルに文字”a”が表示されました。
「B2」セルをコピーし、「C2」から「K2」セルに貼り付けます。
文字列を一文字ずつセルに出力しました。
さらに、「B3」セルに「=IFERROR(B2*1,””)」と入力します。
IFERROR関数:計算結果がエラーになる場合、別の値を表示する関数であり、
=IFERROR(値,エラーの場合の値)
と入力していきます。
今回は、
・値:B2*1(文字に1を掛ける。数字以外の文字はERRORと出力される。)
・エラーの場合の値:””(空欄)
となり、=IFERROR(B2*1,””)=””(空欄)となります。
ENTERを押すと下記のように、「B3」セルに””(空欄)”が表示されました
「B3」セルから「K3」セルをドラッグ&ドロップします。「B3」~「K3」セルに数字のみ表示されました。
最後に「A3」セルに「=CONCATENATE(B3&C3&D3&E3&F3&G3&H3&I3&J3&K3)」と入力します。
CONCATENATE関数:2つ以上の文字列を 1つの文字列に結合する関数であり、
= CONCATENATE(“文字列1”&”文字列2”&”文字列3” …)
と入力していきます。
今回は、
・文字列:B3&C3&D3&E3&F3&G3&H3&I3&J3&K3
=””&”1”&”2”&””&”3”&””&”4”&””&5
となり、= 12345 となります。
これで、エクセルにて数字のみを抽出する(抜き取る)方法が完了です。
エクセルにて数値だけを抽出(抜き取り)する方法【関数など】
この記事では「エクセルにて数字のみを抽出する(抜き取る)方法」について解説しました。
上述のよう、複数の関数の組み合わせを使えばうまく変換できます。
エクセルでのさまざまな処理を理解し、業務に役立てていきましょう。