アカウント登録不要・コピペですぐに無料利用が可能!機能を選んで使ってみる!

Excelで数字だけを抜き出す方法|注文メールや請求書の金額整理を簡単に!

注文メールや請求書のデータから金額だけを抜き出したいけれど、手作業では時間がかかると感じていませんか?Excelの標準機能では、文字列内の数字を自動で抽出するのが難しく、効率的に整理するには工夫が必要です。

例えば、「¥12,000(税込)」や「合計¥7,250円」などの金額を正しくリスト化するには、MID関数やSUBSTITUTE関数を使う方法、VBAによる自動処理、便利ツールの活用 などの方法があります。

この記事では、Excelで数字だけを抜き出す方法を分かりやすく解説 します。データ整理を効率化したい方は、ぜひ活用してみてください!

Excelで数字だけを抜き出すには?よくある課題

Excelを使用してデータを整理する際、「文字列の中から数値だけを抜き出したい」 というニーズは多くの業務で発生します。特に、注文メールや請求書データなど、フォーマットが統一されていない情報から金額を抽出したい場合、手作業では時間がかかるうえ、ミスが発生しやすくなります。

ここでは、具体的なケースと、Excelの標準機能だけでは難しい理由を解説します。

文字列に含まれる数値を抽出したいケース

文字列データの中には、数値情報が埋もれている ことが多く、必要な金額だけを抜き出したい場面が多々あります。例えば、以下のようなケースが考えられます。

① 注文メールから金額を抽出したい

例:
「お世話になっております。商品A(3,500円)と商品B(1,200円)を注文します。」
「3,500円」「1,200円」だけを抜き出して集計したい

② 請求書のデータを整理したい

例:
「2024年2月分の請求金額は合計75,600円(内税 6,800円)です。」
→ 「75,600円」だけを抽出して、Excelで計算に使いたい

③ 取引メモの金額をリスト化したい

例:
「クライアントXとの商談で5,000円の契約が成立」
「5,000円」のみをリスト化して分析したい

このように、業務上の様々なシーンで「文字列の中から数字だけを抜き出したい」ニーズが発生します。

Excelの標準機能では難しい理由

Excelには多くの関数がありますが、「文字列の中にある数値だけを簡単に取り出す」機能は標準搭載されていません。 そのため、一般的には関数を組み合わせたり、VBAを使ったりする必要があります。しかし、以下のような課題が発生します。

1.関数を使う場合、データのパターンが一定でないと難しい

例えば、MID関数FIND関数 を使えば、特定の位置にある数値を取り出すことは可能です。

問題点

  • 金額の位置が毎回異なると関数だけでは対応できない
  • 「3,500円」「¥2,000」「5,000 JPY」など表記のゆれに対応しづらい

2.Excelの標準機能には正規表現がない

プログラミング言語では「正規表現」を使って数値だけを抜き出すことができますが、Excelには標準で正規表現を扱う機能がないため、VBAを使う必要があります。

問題点:

  • VBAの知識が必要で、初心者にはハードルが高い
  • マクロの管理が必要になり、社内運用が難しくなる場合がある

3.手作業での抽出は非効率でミスが発生しやすい

注文メールや請求書データから手作業で金額をコピー&ペーストすれば、ある程度の処理は可能です。

問題点:

  • 大量のデータを扱う場合、手作業では時間がかかりすぎる
  • 人的ミスが発生しやすく、データの正確性が保てない

Excel関数を使って数字だけを抜き出す方法

Excelの標準機能には「文字列の中から数字だけを抜き出す」専用の関数はありませんが、既存の関数を組み合わせることで、ある程度の処理が可能 です。ここでは、代表的な方法を3つ紹介します。

Excel関数を複数組み合わせる方法

MID関数 と FIND関数 を組み合わせることで、文字列の中に含まれる金額(数値のみ)を抽出できます。特に、注文メールや請求書のデータでは「¥3,500円」や「¥12,000(税込)」のように、金額の前後に余計な文字が含まれることが多いため、不要な部分を除いて正しい数値のみを取得する必要があります。

この方法では、「¥」の次にある数値を取り出し、最初に出てくる「円」「税込」「-」などの単位が現れる手前までの文字を取得することで、カンマ(,)を含む数値を正しく抽出できます。

使用する関数

=TRIM(LEFT(MID(A2, FIND("¥", A2) + 1, LEN(A2)), MIN(IFERROR(FIND({"円"," ","税込","です","-","元","USD"}, A2 & " "), LEN(A2) + 1)) - FIND("¥", A2) - 1))
Excel関数の組み合わせ結果

例えば、「¥3,500です」「¥12,000(税込)」のようなデータから、「3,500」や「12,000」のみを抽出でき、不要な単位や記号は削除されます。この方法は、カンマ付きの金額にも対応できるため、手作業で編集する必要がなく、Excel関数だけでデータを整理できます。

ただし、この関数は「¥」が含まれていることを前提としているため、「3,500円」や「12,000(税込)」のように通貨記号がないデータでは動作しません。

また、「税抜」「内税」「JPY」など、新しい単位が追加されると関数を修正する必要があります。さらに、「注文番号123-¥3,500(税込)」のように、数値が金額以外にも含まれている場合は、最初に見つかった数値を誤って取得する可能性があるため、データの形式によっては注意が必要です。

この方法を使えば、注文メールや請求書のデータ整理を関数のみで簡単に行うことができますが、より汎用的な対応が必要な場合は、「SUBSTITUTE関数」や「VBAによる正規表現」を活用する方法も検討するとよいでしょう。

SUBSTITUTE関数を使って数字以外を削除する方法

SUBSTITUTE関数 を活用すると、文字列から不要な記号や単位を削除し、数値のみを残すことができます。この方法は、MID関数 や FIND関数 を使う方法とは異なり、通貨記号や単位が一定のルールで含まれている場合に有効です。

例えば、「¥3,500円」や「12,000(税込)」といったデータから「円」や「税込」といった単位を削除すれば、数値部分だけを取得できます。以下のような関数を使えば、指定した不要な文字を除去できます。

使用する関数

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "¥", ""), "円", ""), "税込", "")

この関数では、「¥」「円」「税込」を順番に削除することで、「¥3,500円」なら「3500」、「12,000(税込)」なら「12000」という結果になります。さらに、カンマ(,)を削除したい場合は、次のように追加することで、数値データとして扱いやすくなります。

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "¥", ""), "円", ""), "税込", ""), ",", "")

SUBSTITUTE関数 は、FIND関数 を使う方法と比べて、特定の文字列が含まれている場合に簡単に適用できます。ただし、新しい表記(「税抜」「JPY」「税別」など)が含まれた場合は、その都度 SUBSTITUTE関数 に追加しなければならない点がデメリットです。また、「¥3,500(税込)」のように数値の前後に不要な文字がある場合は対応できますが、「商品A 3,500円」といったデータでは適用できず、数値の位置が決まっていないケースには向いていません。

この方法は、特定の単位が決まっている場合に有効ですが、より柔軟に対応したい場合は VBA を使った正規表現を活用する方法も検討するとよいでしょう。

正規表現を使う方法(VBAを活用)

Excelの関数だけでは、複雑なデータから数値だけを抽出するのが難しいケースがあります。その場合、VBA(マクロ) を使用し、正規表現を使って「数字だけ」を抽出する 方法が有効です。正規表現は、「特定のパターンに一致する文字列を取得する」ことに長けており、数値がどの位置にあっても確実に抽出できます。

Excelの標準機能には正規表現が搭載されていないため、VBAを使って処理を行う必要があります。以下のコードをVBAエディタ(Alt + F11 で開く)に追加すると、Excelのセル関数として利用できます。

VBAコード(数値のみ抽出)

Function ExtractNumbers(ByVal Txt As String) As String
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")
    
    With regex
        .Pattern = "\d{1,3}(,\d{3})*" ' 数字とカンマを含む数値を取得
        .Global = True
        If .Test(Txt) Then
            ExtractNumbers = .Execute(Txt)(0)
        Else
            ExtractNumbers = ""
        End If
    End With
    
    Set regex = Nothing
End Function

このVBAコードでは、「\d{1,3}(,\d{3})*」 という正規表現を使用し、カンマ(,)を含む数値 を正しく取得できます。VBAを有効にした後、以下のようにExcelで関数として利用できます。

=ExtractNumbers(任意のセル)

例えば、「合計¥7,250円」のようなデータであっても、「7,250」という結果を得ることができ、前後の文字に関係なく正しく数値を抽出できます。また、「注文コードA123・金額¥5,800」などのように、文字列の途中に金額が含まれている場合でも、「5,800」だけを取り出すことが可能です。

この方法は、数値がどこにあっても正しく抽出できるという大きなメリットがありますが、VBAの設定が必要なため、環境によってはマクロを有効化できない場合がある点に注意が必要です。また、VBAを使用するため、関数を組み合わせる方法と比べて管理がやや煩雑になる可能性があります。

VBAを使うことで、より高度なデータ処理が可能になりますが、簡単に処理したい場合は MID関数 + FIND関数 や SUBSTITUTE関数 を利用する方法も検討するとよいでしょう。

3. 注文メールや請求書データから数字だけを抜き出す方法

業務で扱うデータの中には、注文メール・請求書・取引メモ など、テキスト情報の中に金額が含まれているケースが多くあります。しかし、これらのデータは統一されたフォーマットではないため、手作業で金額部分を抽出するのは非効率です。Excelの関数やツールを活用すれば、テキストデータから金額情報のみを抽出し、業務を効率化できます。

注文メールの金額情報を整理する方法

課題:
注文メールには、顧客が購入した商品の明細がテキスト形式で記載されていることが多く、メールの本文から金額部分のみを抽出し、Excelに整理するのは手間がかかる という問題があります。例えば、以下のようなメールを受け取ったとします。

例:注文メールの本文

お世話になっております。
以下の注文を承りました。
商品A:¥3,500
商品B:¥1,200
合計金額:¥4,700(税込)

このようなデータから、「¥3,500」「¥1,200」「¥4,700」 のような金額だけを抜き出したい場合、Excelの関数を活用すれば、手作業を減らせます。

解決策:
MID関数 や FIND関数 を使えば、テキスト内の「¥」記号を基準にして金額を抽出できます。

=TRIM(LEFT(MID(A2, FIND("¥", A2) + 1, LEN(A2)), MIN(IFERROR(FIND({"円"," ","税込","です"}, A2 & " "), LEN(A2) + 1)) - FIND("¥", A2) - 1))

この関数を適用すれば、注文メールの中に含まれる 「¥3,500」や「¥1,200」 などの金額情報を自動的に抽出し、Excelでリスト化できます。

注意点:

  • 金額表記が「¥」ではなく「円」や「JPY」の場合、関数をカスタマイズする必要があります。
  • 「合計金額」などのラベルが含まれる場合は、フィルター機能を使って整理すると便利です。

請求書データから金額のみをリスト化する方法

課題:
請求書には、「請求金額」「消費税」「合計」など複数の金額が含まれます。手作業でそれらをリスト化するのは時間がかかり、ヒューマンエラーの原因にもなります。例えば、次のような請求書データを処理する必要があるとします。

例:請求書データ

2024年2月分の請求金額は以下の通りです。
基本料金:¥10,000
消費税(10%):¥1,000
合計:¥11,000

このデータをExcelに取り込み、金額部分のみをリスト化 する場合、SUBSTITUTE関数 を活用すれば、不要な文字を削除して数値のみを抽出できます。

解決策:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "¥", ""), "円", ""), ",", "")

この関数を適用すると、「¥10,000」→「10000」のように 数値データとして整理 でき、SUM関数などを使った計算が可能になります。

また、VBAを活用すれば、請求書データのフォーマットが異なる場合でも、正規表現を用いて「¥」記号の後に続く数値だけを抽出することができます。

VBAコード(請求書の金額抽出)

Function ExtractNumbers(ByVal Txt As String) As String
    Dim regex As Object
    Set regex = CreateObject("VBScript.RegExp")
    
    With regex
        .Pattern = "\d{1,3}(,\d{3})*" ' 数字とカンマを含む数値を取得
        .Global = True
        If .Test(Txt) Then
            ExtractNumbers = .Execute(Txt)(0)
        Else
            ExtractNumbers = ""
        End If
    End With
    
    Set regex = Nothing
End Function

これを設定し、下記の関数を使用することで請求書の金額部分のみを簡単に抽出できます。

=ExtractNumbers(A2)

注意点:

  • VBAを使用する場合、マクロを有効にする必要があります。
  • 手軽に処理したい場合は SUBSTITUTE関数、柔軟な対応をしたい場合は VBA が適しています。

取引メモの中から金額情報を抽出する方法

課題:
営業や経理の業務では、取引に関するメモをExcelに記録することが多いですが、その中から金額だけを抜き出して集計するのは手間がかかります。

例:取引メモ

・クライアントXとの商談で¥5,000の契約が成立
・追加発注¥12,500(税抜)
・キャンセル分¥-3,000

このようなデータを整理する場合、金額情報を抽出してリスト化すれば、売上や支出の管理が容易になります。

解決策:
このようなデータでは、数値の前に「¥」があるため、MID関数 + FIND関数 を活用すれば、数値部分のみを取得できます。

=TRIM(LEFT(MID(A2, FIND("¥", A2) + 1, LEN(A2)), MIN(IFERROR(FIND({"円", " ", "税込", "です", "税抜"}, A2 & " "), LEN(A2) + 1)) - FIND("¥", A2) - 1))

この方法を適用すれば、「¥5,000」→「5000」、「¥12,500」→「12500」のようにデータを整理できます。また、SUM関数 を使えば、取引メモから抽出した金額の合計を計算することも簡単です。

注意点:

  • 負の値(例:「¥-3,000」)にも対応する必要がある場合は、VBAを活用すると良い。
  • 金額が異なるフォーマット(「5000 JPY」「5,000ドル」など)の場合は、関数をカスタマイズする必要がある。

AI JIMY Converterを使用してより簡単に金額を抜き出す方法

Excelの関数やVBAを活用すれば、テキストデータから金額のみを抽出することは可能ですが、関数の設定やVBAの作成には手間がかかるうえ、データのフォーマットが変わるたびに修正が必要になることがあります。

こうした問題を解決するために、ノーコードで簡単に金額を抽出できるツール を活用するのも一つの方法です。その中でも、「AI JIMY Converter」は、ExcelやGoogleスプレッドシート上で手軽にデータを変換・抽出できるツールとして便利です。

AI JIMY Converterを使えば、エクセル上に1つのセルに記載されている文字列から、別のセルに金額情報のみを抽出し、効率的にデータを整理することが可能です。このセクションでは、AI JIMY Converterを使って文字列から金額情報のみを抽出し、別のセルに自動入力する具体的な手順を説明します。

AI JIMY Converter

AI JIMY Converterとは?

AI JIMY Converterは、生成AI「ChatGPT」を活用した無料の文字列変換APIツールです。公式Webサイトにアクセスし、利用したい関数をExcelやGoogle スプレッドシートにコピペするだけで文字列変換が行えます。

AI JIMY Converterはこんなに簡単!

  • アドオンの設定が不要
  • アプリケーションのインストールが不要
  • 専門知識は必要なし
  • 生成AIを活用した柔軟なデータ変換が可能
  • 無料で使える

AI JIMY Coverterの利用手順

AI JIMY Converterの使用して文字列から金額情報を抽出し、別のセルに自動入力する手順を紹介します。

1.サイトにアクセスする。

ここでは、エクセルで作成した下記のサンプルを使って、文字列から金融情報を抽出しセルへ入力する方法を説明します。

AI JIMY Converterの「文字列から金額情報を抽出」ページへアクセス

まずは、AI JIMY Converterの「文字列から金額情報を抽出」ページへアクセスします。

2.サイトに記載されている関数をコピー

ページの中程くらいに「利用方法」という見出し以降に関数が表示されているので、使用したいプラットフォームを選んでコピーします。今回は、エクセルで利用するので「Microsoft Excel」からコピーします。

サイトに記載されている関数をコピー

3.変換したいエクセルのセルへ貼り付け

コピーした関数を変換したいセルへ貼り付けします。貼り付けの際に、警告が出た場合は「すべてを貼り付ける」「有効にする」を選択してください。

変換したいエクセルのセルへ貼り付け

デフォルトでは参照セルが「A1」になっているので、変換したいセルに変更します。今回は文字列が入っている「A2」に修正します。

セルの修正

2行目からは、貼り付けた関数をコピペするだけですべて変換されます。

他のセルにもコピペ

とりあえずデータ化しよう!という場合は、1つのセルに文字列をそのまま入れていることも多いのではないでしょうか。後にデータベース化して、さまざまなマーケティングを行う際は、こうした抽出が一度にできると非常に便利です。

▶インストールやアドイン設定は不要!生成AIを利用したExcelの文字列変換ツールを早速使ってみたい方はこちら

まとめ

Excelで注文メールや請求書から金額を抜き出す作業は、手作業では非効率でミスも発生しやすい という課題があります。Excelの標準機能だけでは対応が難しい場合もあり、データの整理に時間がかかることが問題です。

これを解決する方法として、MID関数・FIND関数・SUBSTITUTE関数を活用すれば、金額のみを抽出可能 です。また、VBAを使えば、より複雑なデータにも対応 できます。さらに、AI JIMY Converterを活用すれば、数式不要で簡単に金額を抽出でき、作業時間を短縮 できます。

注文メールや請求書の整理を効率化したい方は、自分に合った方法を取り入れ、業務をスムーズに進めましょう!

  • URLをコピーしました!
  • URLをコピーしました!