エクセルで「りんご120個」から数字の「120」だけを取り出すには、REGEXREPLACE関数で数字以外を消すのがいちばん簡単です。式は =REGEXREPLACE(A2,"[^0-90-9]","") です。反対に文字だけを取り出すときは、=REGEXREPLACE(A2,"[0-90-9]","") で数字を消します。
REGEXREPLACE関数は、Microsoft 365 の新しいExcelで使える関数です。この記事では、実際に試した結果をもとに、数字だけ・文字だけを取り出す式と、全角数字や先頭の0の注意点を説明します。
目次
数字だけ・文字だけを取り出す式の一覧
| やりたいこと | 式(A2から取り出す) | 「りんご120個」の結果 |
|---|---|---|
| 数字だけを取り出す | =REGEXREPLACE(A2,"[^0-90-9]","") | 120(文字列) |
| 文字だけを取り出す | =REGEXREPLACE(A2,"[0-90-9]","") | りんご個 |
| 数字を数値にして取り出す | =IFERROR(VALUE(REGEXREPLACE(A2,"[^0-90-9]","")),"") | 120(数値) |
| REGEXREPLACEがないExcel | =TEXTJOIN("",TRUE,IFERROR(MID(A2,SEQUENCE(LEN(A2)),1)*1,"")) | 120(Excel 2021 以降) |
数字だけを取り出す方法
B2 に次の式を入れて、下へコピーします。
=REGEXREPLACE(A2,"[^0-90-9]","")

| 部分 | 意味 |
|---|---|
[0-90-9] | 半角の 0〜9 と、全角の 0〜9 |
[^…] | 「^」を付けると「…以外」という意味 |
REGEXREPLACE(A2,"[^0-90-9]","") | 数字以外の文字を、””(何もない)に置き換える=消す |
ポイント「[^0-9]」だけにすると、全角の数字(「みかん15個」の「15」)は消えてしまい、空白になりました(実際に確かめた結果)。全角の数字が混ざる可能性があるときは、「0-9」も入れておきましょう。
文字だけを取り出す方法
C2 に次の式を入れて、下へコピーします。今度は「^」を付けずに、数字を消します。
=REGEXREPLACE(A2,"[0-90-9]","")

取り出した数字を計算に使うとき(数値に変換)
REGEXREPLACE関数の結果は、数字でも文字列です(セルの左に寄ります)。計算に使うときは、VALUE関数で数値にします。
=IFERROR(VALUE(B2),"")

電話番号や郵便番号のように、先頭の0が大事なものは、数値にせず文字列のまま使います(電話番号の0が消えるとき)。
REGEXREPLACE関数がないExcelでは
REGEXREPLACE関数が使えないExcel(「#NAME?」になる)では、1文字ずつ取り出して、数字になるものだけをつなげる方法があります。
=TEXTJOIN("",TRUE,IFERROR(MID(A2,SEQUENCE(LEN(A2)),1)*1,""))
MID関数で1文字ずつ取り出し、「*1」で数値にできたもの(数字)だけを TEXTJOIN関数でつなげています。練習用ファイルのデータで、REGEXREPLACE と同じ結果になりました(全角の「15」は「15」になります)。SEQUENCE関数と TEXTJOIN関数は Excel 2021 以降で使えます(TEXTJOIN関数)。
うまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「#NAME?」になる | REGEXREPLACE関数がないExcel | MID+TEXTJOIN の式を使う。 |
| 全角の数字が消える | 式が「[^0-9]」になっている | 「[^0-90-9]」にする。 |
| 取り出した数字で計算できない | 結果が文字列 | VALUE関数で数値にする。 |
| 先頭の0が消える | 数値にすると0は消える | 文字列のまま使う。 |
練習用Excelファイル(無料ダウンロード)
数字と文字がまざったデータ6件(架空)と、数字だけ・文字だけ・数値に変換する式が入っています。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

コメント