Excel 文字列から数字のみを抽出する方法
数字と数字以外が混在する文字列から数字のみを抽出する方法を紹介します。
よく見かける手法では、ある程度ルールのある文字列から抽出しますが
この記事ではどんなルールでも対応します。
(単純に数字以外を削除します)
また全角の数字は半角の数字に変換した上で残します。
文字列 | 結果 |
---|---|
A-0005 | 0005 |
090-1234-XXXX | 0901234 |
0あ12うえ56お7 | 012567 |
赤字…全角から半角に変換
LAMBDA関数を利用する方法
Microsoft365など新しい機能が反映されているExcelの場合、
後述する従来の方法と違い、1セルの数式で完結します。
数式にはCONCAT、MAP、MAKEARRAY、LEN、LAMBDA、MID、IFERROR,
NUMBERVALUEを利用します。
=CONCAT(MAP(MAKEARRAY(1,LEN(テキスト),LAMBDA(row,col,MID(テキスト,col,1))),LAMBDA(v,IFERROR(NUMBERVALUE(v),""))))
従来の方法
サンプルファイルを使用する場合
手間なく抽出したい場合のサンプルファイルを用意しています。
B列に文字列を入力するとC列に抽出結果が表示されます。
このファイルでは文字列が100文字までの制限です。
これ以上の文字列を処理する場合は100のCY列以降にも数式をコピーし
2行目に続く連番を設定した上でC列のCONCAT関数の範囲を広げてください。
数式を作成する場合
まずこのようなExcelを用意します。
抽出したい文字列(B列)と結果のセル(C列)と1からの連番(D~M列)…文字数を用意します。
サンプルでは13まで用意していますが、文字列の最も長い文字数まで用意してください。
(サンプルでは090-1234-XXXXが13文字)
次に文字数1の下のセルに数式を設定します。
IFERROR関数、NUMBERVALUE関数、IF関数、LEN関数、MID関数を使用します。
=IFERROR(NUMBERVALUE(IF(文字数:行指定に$<=LEN(文字列:列指定に$),MID(文字列:列指定に$,文字数:行指定に$,1),"-")),"")
この数式を全文字数列の全行にコピーします。
この時点で数字のみがセルに表示されます。
これを行ごとにCONCAT関数を設定して文字列結合をすれば完成です。
応用:文字数のセル指定を削除(COLUMN関数)
数式として分かりやすいので2行目でベタ指定をしましたが、
COLUMN関数で自動的に指定する方法もあります。
「文字列:列指定に$」のセル指定を
=COLUMN()-COLUMN(最初の数式のセル:行列$指定)+1
に変更すると2行目の入力に依存しない安全な数式になります。
Excel完全マスター: 関数・テクニック・新機能を網羅した決定版ガイド
本書は、Excelの基礎から応用まで、包括的に学べるガイドブックです。当サイトの豊富な情報を、電子書籍向けに最適化し、読みやすく再構成しました。
【本書の特徴】
- 情報量:Word-A4サイズ換算で1,400ページ相当
- 基本操作から高度なテクニックまで、段階的に学習可能
- 140種類の関数を詳細に解説
- 109種類の実用的なテクニックと具体例を紹介
- 最新機能(XLOOKUP関数、LET関数、シートビュー、LAMBDA関数、スピル等)を徹底解説
【対象読者】
- Excel初心者からプロフェッショナルまで
- 体系的にExcelスキルを向上させたい方
- 業務効率化を目指すビジネスパーソン
- データ分析や可視化のスキルを磨きたい方
【本書の強み】
- 実務に即した例題と解説
- 視覚的な図表やスクリーンショットで理解を促進
- 最新のExcelバージョンに対応した内容
- 著者の長年の経験に基づく、実践的なTipsを多数収録
【更新とサポート】
- 常に最新の情報を反映するため、定期的に内容を更新
- 最新版の入手方法:Amazonカスタマーサポートへお問い合わせください
【入手方法】
- 買い切り:950円
- Kindle Unlimited:読み放題プランで利用可能
Excelマスターを目指す方、業務効率を劇的に向上させたい方に、自信を持っておすすめできる一冊です。この1冊で、Excelの可能性を最大限に引き出す力が身につきます。