ほかのシステムから貼り付けたデータの数字が「文字列」になっていて、合計が0になってしまう。そんなときに使えるのがVALUE関数です。結論から言うと、VALUE関数は=VALUE(文字列)で、数値を表す文字列を本物の数値に変換する関数です。ただし、足し算や掛け算ではExcelが自動で変換してくれるため、VALUEが必要になる場面は意外と限られます。
VALUE関数の基本構文
=VALUE(文字列)
文字列には、Excelが数値・日付・時刻として認識できる形式の文字列やセルを指定します。=VALUE("1,000")は1000、=VALUE("16:48:00")は時刻のシリアル値になります。数値として読めない文字列(例: “12個”)を指定すると#VALUE!エラーです。
VALUE関数で文字列の数字を合計する例
次のような表(A1:C4)で、B列の数量がすべて文字列として入っているとします。
| A(商品) | B(数量・文字列) | C(単価) | |
|---|---|---|---|
| 2 | りんご | 12 | 150 |
| 3 | みかん | 8 | 80 |
| 4 | ぶどう | 20 | 100 |
A列=商品、B列=数量(文字列)、C列=単価という対応で、次の数式の結果を比べてみます。
| 数式 | 結果 | 理由 |
|---|---|---|
=B2*C2 |
1,800 | 掛け算では文字列の「12」が自動で数値に変換される |
=SUM(B2:B4) |
0 | SUMは範囲内の文字列を無視する |
=SUMPRODUCT(VALUE(B2:B4)) |
40 | VALUEで3つとも数値に変換してから合計する |
このように、VALUEが必要になるのは「範囲内の文字列を無視する関数」を使うときです。SUMのほか、AVERAGEやCOUNTも範囲内の文字列を数えません(SUM関数の性質はSUM関数の基本的な使い方|合計を計算する方法参照)。
VALUE関数でVLOOKUPの数値と文字列の不一致を直す
検索値が文字列の「101」、検索範囲が数値の101になっていると、見た目は同じでもVLOOKUPは一致せず#N/Aになります。検索値のほうを数値に変換すれば一致します。
=VLOOKUP(VALUE(E2),$A$2:$C$10,3,FALSE)
逆に検索範囲のほうが文字列の場合は、E2&""のように検索値を文字列に変換して合わせます。#N/Aの原因の見分け方は#N/Aエラーが出る原因と対処法(VLOOKUP編)で詳しく解説しています。
VALUE関数のよくある注意点
- 単位や記号が付いていると#VALUE!: 「12個」のような文字列は変換できません。SUBSTITUTE関数で「個」を取り除いてから
=VALUE(SUBSTITUTE(B2,"個",""))とします。#VALUE!エラー全般は#VALUE!エラーの原因と直し方を参照してください。 - 前後のスペースが原因のことも: 貼り付けたデータに余分なスペースが入っていると、数値として認識されないことがあります。TRIM関数で文字列からスペース(余白)を削除する方法|エクセルで取り除いてから変換します。
- 日付の文字列はシリアル値になる:
=VALUE("2026/9/26")は46291という数値になります。日付として表示したいときは、セルの表示形式を日付にします(日付が数値やシリアル値で表示されてしまう問題の直し方参照)。 - 表全体を直すなら数式より一括変換: 列全体が文字列なら、エラーインジケーター(セル左上の緑の三角)から「数値に変換する」を選ぶか、「データ」タブの「区切り位置」で「完了」を押すと一括で数値になります。
VALUE関数が登場する記事
VALUE関数の使い方まとめ
VALUE関数は=VALUE(文字列)で文字列の数字を数値に変換します。足し算・掛け算では自動で変換されるため、主な出番はSUMなど範囲の文字列を無視する関数や、VLOOKUPの数値・文字列の不一致を直すときです。条件付きの集計については、サイトの人気記事エクセルのsumifs関数でOR条件の集計をする方法やエクセル関数で条件付きで中央値(MEDIAN)を計算する方法もあわせてご覧ください。





