文章から数字だけを抽出する方法:小数・符号・桁区切りの注意点
金額、ID、日付、電話番号が混ざった文章から数字だけを得たいとき、1 つずつ選択するより貼り付けるほうが速く済みます。連続する数字が符号と小数部分とともに出力されます。
数字だけを取り出したい場面
見積もりのメールに「単価 128.50 円、3 点で 385.50 円、値引き -12.50」と書かれていれば、計算の確認は数字を本文から分けることから始まります。ログから処理時間を拾う、レポートから ID を取る場合も同じで、まず数字と説明文を分けてから 1 行ずつ確認します。
もう一つはコピーの確認です。表の 1 列をテキストとして貼り、元の表と突き合わせるとき、2 列を目で追うだけでは桁の欠けを見落とします。数字だけを取り出して並べれば、元の表との違いがはっきりします。
- 見積もりや請求書の文章から金額を取る
- ログやレポートから処理時間、ID、件数を拾う
- コピーした数値列が元の表と一致するか確認する
- 混在した文章を使える数値の一覧にする
どこまでが 1 つの数字か
規則は、省略可能な負号、連続する数字、省略可能な小数点と続く数字です。-12.50 はそのまま残り、3.14 も 1 つの値になります。桁区切りのカンマは数字に含まれないため、1,000 は 1 と 000 に分かれます。日付 2024-05-01 は 2024、-05、-01 になり、ハイフンが負号として読まれます。
電話番号も同じで、138-0000-0000 は 138、-0000、-0000 になります。全角数字と漢数字は対象外です。抽出後は 1 行ずつ見て、日付や電話番号の断片を金額として扱っていないか確認してください。
- 負号と小数は残る(-12.50 はそのまま)
- 桁区切りは分割される(1,000 → 1 と 000)
- 日付や電話番号はハイフンで分かれる
- 全角数字と漢数字は検出されない
- 出現順に 1 行 1 件で出力される
抽出した数字を正しく使うために
抽出は文字を拾うだけで、単位は理解しません。50% は 50、1,200 円は 1 と 200 になり、通貨記号やパーセントは原文に残ります。電卓や表計算に貼る前に単位と桁を戻さないと、千を一として扱ってしまいます。
合計も並べ替えも重複除去も行わず、順序は出現順のままです。計算が必要なら結果を表計算に移してください。指数表記も分解され、1e5 は 1 と 5 になるため、見つけたら手で直します。
- 単位、通貨記号、パーセントは失われる
- 合計・並べ替え・重複除去は行わない
- 指数表記は分割されるため手で修正する
- 表に貼る前に桁と単位を戻す
よくある質問
小数や負の数もそのまま抽出されますか?
そのまま抽出されます。負号 1 つと小数部 1 つを許す規則なので、-12.50 も 3.14 も欠けずに出力されます。ただし小数点の重複、指数表記の e、桁区切りのカンマは対象外なので、結果の中で手直しが必要です。
1,000 が 2 つの数になるのはなぜですか?
カンマが数字の一部として扱われず、そこで一致が切れるためです。結果は 1 と 000 になります。金額を扱うときは、抽出前に桁区切りのカンマを削除するか、抽出後に隣り合う 2 つをつなぎ直してください。
全角の数字も抽出できますか?
できません。対象は半角の 0 から 9 だけで、全角数字や漢数字は一致しません。全角が使われている文章では、先に半角へ変換してから抽出すると結果が揃います。
関連ツール:数字の抽出