概要
Excelで「文字列の先頭にある数字だけを抽出したい」という場面はよくあります。例えば「123ABC」という文字列から「123」だけを取り出すケースです。Excelには直接「先頭の数字だけを抜き出す」関数はありませんが、複数の関数を組み合わせることで実現できます。代表的な方法は、MIN・FIND・LEFT・VALUEを組み合わせるやり方です。
基本の考え方
数式の仕組み
=LEFT(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",A1&"0123456789"))-1)
- FINDで文字列中の数字の位置を探す
- MINで最初に出てきた数字の位置を取得
- LEFTでその位置までを切り出す
- VALUEで数値化すれば「数値」として扱える
この仕組みを応用すると「先頭の数字だけ」を抽出できます。
具体例
文字列「123ABC」から先頭の数字を抽出
=VALUE(LEFT(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",A1&"0123456789"))-1))
結果は「123」。
文字列「45XYZ」から先頭の数字を抽出
=VALUE(LEFT(B2,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",B2&"0123456789"))-1))
結果は「45」。
数字が含まれない場合のエラー対策
=IFERROR(VALUE(LEFT(C2,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",C2&"0123456789"))-1)),"")
数字がなければ空欄を返します。
応用テンプレート
先頭の数字を抽出して残りの文字列と分ける
=VALUE(LEFT(D2,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",D2&"0123456789"))-1))
→ 数字部分
=RIGHT(D2,LEN(D2)-LEN(上記式))
→ 文字部分
数字を抽出して計算に使う
=VALUE(LEFT(E2,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",E2&"0123456789"))-1))+100
先頭の数字に100を加算。
TRIMと組み合わせて余分なスペースを削除
=VALUE(LEFT(TRIM(F2),MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",TRIM(F2)&"0123456789"))-1))
よくあるつまずきと対策
配列数式が必要な場合がある
古いExcelでは「Ctrl+Shift+Enter」で確定する必要があります。Microsoft 365では通常のEnterでOKです。
数字が途中にある場合
この方法は「先頭の数字」を対象にしています。途中の数字を取りたい場合は別の処理が必要です。
全角数字は対象外
「123ABC」のような全角数字は変換できません。ASC関数で半角に変換してから処理しましょう。
例題
問題1: A2セルの文字列「123ABC」から先頭の数字をB2に表示してください。
解答例:
=VALUE(LEFT(A2,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",A2&"0123456789"))-1))
問題2: C2セルの文字列「45XYZ」から先頭の数字をD2に表示してください。
解答例:
=VALUE(LEFT(C2,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",C2&"0123456789"))-1))
問題3: E2セルの文字列に数字が含まれない場合は空欄をF2に表示してください。
解答例:
=IFERROR(VALUE(LEFT(E2,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",E2&"0123456789"))-1)),"")
問題4: G2セルの文字列から先頭の数字を抽出し、それに100を加算してH2に表示してください。
解答例:
=VALUE(LEFT(G2,MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",G2&"0123456789"))-1))+100
問題5: I2セルの文字列に余分なスペースがある場合、スペースを削除してから先頭の数字をJ2に表示してください。
解答例:
=VALUE(LEFT(TRIM(I2),MIN(FIND({0,1,2,3,4,5,6,7,8,9}&"",TRIM(I2)&"0123456789"))-1))
まとめ
「先頭の数字のみ抽出」はExcelに専用関数がないため、FIND・LEFT・VALUEの組み合わせで実現します。配列数式を使う点に注意し、IFERRORやTRIMを組み合わせると実務でさらに安定します。講師として強調したいのは「文字列処理は関数の組み合わせで自在にできる」ということ。これを理解すれば、Excelでのデータ整形が一段と効率的になります。
