海外の取引先から届いたCSVデータを開いたら、数値が「1.234,56」のようになっていて計算に使えない。こんな経験はありませんか?
ヨーロッパや南米など多くの地域では、小数点にコンマ(,)、桁区切りにピリオド(.)を使います。日本とは真逆のルールなので、そのままでは文字列として扱われ、SUM関数や四則演算の対象になりません。
そんなときに使えるのがNUMBERVALUE関数です。この記事では、構文や引数の意味から実践的な変換方法まで、具体例をまじえてわかりやすく解説します。
NUMBERVALUE関数とは?
NUMBERVALUE関数は、文字列として入力された数値を、小数点記号や桁区切り記号を指定して数値に変換する関数です。
読み方は「ナンバーバリュー」で、「Number(数値)」と「Value(値)」を組み合わせた名前のとおり、文字列を本当の数値に変えてくれます。
たとえば海外形式の「1.234,56」という文字列を渡すと、日本で使い慣れた「1234.56」という数値に変換できます。
対応環境は以下のとおりです。
- Excel 2013 以降
- Microsoft 365
- Excel for the web
Excel 2010 以前では使用できない点に注意してください。
NUMBERVALUE関数の書き方(構文と引数)
基本構文
=NUMBERVALUE(文字列, [小数点記号], [桁区切り記号])
引数の説明
| 引数 | 必須/省略可 | 説明 |
|---|---|---|
| 文字列 | 必須 | 数値に変換したい文字列またはセル参照 |
| 小数点記号 | 省略可 | 文字列中で小数点として使われている記号(コンマまたはピリオド) |
| 桁区切り記号 | 省略可 | 文字列中で桁区切りとして使われている記号(コンマまたはピリオド) |
小数点記号と桁区切り記号を省略した場合は、Excelの地域設定に従います。日本語環境では、小数点がピリオド(.)、桁区切りがコンマ(,)として扱われます。
ポイントは「元の文字列で使われている記号を教える」ということです。変換後の形式ではなく、変換前の文字列がどんなルールで書かれているかを指定します。
基本的な使い方
ここでは、ヨーロッパ形式の数値文字列を日本形式の数値に変換する基本パターンを紹介します。
パターン1: 直接値を指定する
セルA1に「1.234,56」(ヨーロッパ形式)が入っているとします。この文字列では、ピリオドが桁区切り、コンマが小数点として使われています。
=NUMBERVALUE(A1, ",", ".")
第2引数に「,」を指定して「この文字列ではコンマが小数点記号ですよ」と教え、第3引数に「.」を指定して「ピリオドが桁区切りですよ」と教えています。
結果は数値の 1234.56 になります。
パターン2: 引数を省略する(日本形式の場合)
日本形式の「1,234.56」が文字列としてセルに入っている場合は、引数を省略できます。
=NUMBERVALUE(A2)
日本語環境では省略時のルールが「小数点=ピリオド、桁区切り=コンマ」なので、そのまま正しく 1234.56 に変換されます。
パターン3: パーセント記号を含む文字列
NUMBERVALUE関数は、末尾に「%」が付いた文字列にも対応しています。
=NUMBERVALUE("75.5%")
結果は 0.755(数値)になります。パーセント記号を自動で認識して100で割ってくれるのは便利ですね。
実践的な使い方・応用例
海外CSVデータの一括変換
海外から届いたCSVファイルをExcelで開くと、数値列が文字列として読み込まれることがあります。B列にヨーロッパ形式の金額が入っている場合、C列に次の数式を入れれば一括で変換できます。
=NUMBERVALUE(B2, ",", ".")
この数式をC列の下までコピーすれば、全行まとめて数値に変換できます。変換後はSUMやAVERAGEなどの集計関数がそのまま使えるようになります。
VALUE関数との使い分け
文字列を数値に変換する関数としてはVALUE関数もあります。使い分けの基準は次のとおりです。
| 関数 | 用途 | 桁区切り・小数点の指定 |
|---|---|---|
| VALUE | 日本形式の文字列を数値に変換 | 不可(地域設定に依存) |
| NUMBERVALUE | 任意の形式の文字列を数値に変換 | 可能(第2・第3引数で指定) |
日本形式の文字列だけを扱うならVALUE関数で十分ですが、海外形式が混在するデータではNUMBERVALUE関数が必要です。
SUBSTITUTE関数と組み合わせる
元データに通貨記号($やEURなど)が含まれている場合は、まずSUBSTITUTE関数で記号を除去してからNUMBERVALUEに渡します。
=NUMBERVALUE(SUBSTITUTE(A2, "EUR ", ""), ",", ".")
この数式では、まずSUBSTITUTEで「EUR 」を削除し、残った数値文字列をNUMBERVALUEで変換しています。
よくあるエラーと対処法
#VALUE! エラー
NUMBERVALUE関数で最も多いエラーが #VALUE! です。主な原因は次の3つです。
- 小数点記号と桁区切り記号に同じ文字を指定した: 第2引数と第3引数に同じ記号を入れるとエラーになります。片方をコンマ、もう片方をピリオドに設定してください
- 文字列に数値以外の文字が含まれている: 通貨記号やスペース、全角数字が混じっているとエラーになります。SUBSTITUTE関数やTRIM関数で事前に除去しましょう
- 小数点記号が2つ以上ある: 「1,234.56.78」のように小数点が複数あると変換できません。元データを確認してください
数値にならず文字列のまま
数式の結果が左寄せで表示される場合、セルの書式設定が「文字列」になっている可能性があります。セルの書式を「標準」に変更してから、数式を再入力してみてください。
地域別の小数点・桁区切りルール早見表
NUMBERVALUE関数の第2・第3引数を正しく設定するために、主要な地域の表記ルールを確認しておきましょう。
| 地域 | 数値の例 | 小数点記号 | 桁区切り記号 |
|---|---|---|---|
| 日本・アメリカ・イギリス | 1,234.56 | ピリオド(.) | コンマ(,) |
| ドイツ・フランス・ブラジル | 1.234,56 | コンマ(,) | ピリオド(.) |
| スイス | 1’234.56 | ピリオド(.) | アポストロフィ(’) |
スイスのようにアポストロフィを桁区切りに使う地域もあります。NUMBERVALUE関数の第3引数にはアポストロフィも指定できるので覚えておくと便利です。
=NUMBERVALUE("1'234.56", ".", "'")
まとめ
NUMBERVALUE関数は、海外形式の数値文字列を日本のExcelで使える数値に変換するための関数です。
- 第2引数で小数点記号、第3引数で桁区切り記号を指定する
- 省略すると日本語環境のルール(小数点=ピリオド、桁区切り=コンマ)が適用される
- パーセント記号付きの文字列にも対応している
- 海外データを扱うときは、まず地域の表記ルールを確認してから引数を設定する
海外取引先とのデータやり取りが多い方は、ぜひ覚えておいてください。
関連記事
Excel関数の一覧や、文字列変換に関する記事もあわせてご覧ください。
