Menu

Excelで文字列を数値に変換する方法: VALUE関数ほか

=VALUE(A2)は、'120のように文字列として保存された数値を数値の120に変えます。マイナス記号2つの=--A2も同じで、NUMBERVALUEは小数点にカンマを使う数値を扱い、「数値に変換する」はセルをその場で直します。

このページのシートはすべて実際に動きます。数値や数式を変えると再計算されます。

=VALUE(A2)は、A2に文字列として保存された数値を本物の数値に変えます。文字列の数値は普通に見えますが、SUM、AVERAGE、COUNTはそれを無視するので、合計が0になることがあります:

SUMは文字列として保存された数値を無視する
C2
ABC
1ImportedVALUE
2120120
38585
4240240
51515
60460
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

A列の4つのセルは文字列なので、A6の合計は0です(CSVやWebページから取り込んだデータによくあるように、アポストロフィ付きで入力されています)。C列はそれぞれを変換していて、C6は本当の合計460になります。

数値が文字列として保存されているか見分ける

Excelで文字列として保存された数値は:

  • セルの左側に寄ります。数値は右側に寄ります(配置を変えていない場合)。
  • セルの左上に小さな緑色の三角形が付き、選択すると「数値が文字列として保存されています」という警告アイコンが表示されます。
  • COUNTAでは数えられますが、COUNTでは数えられません。
文字列の数値を探す
B2
ABCDE
1ValueISNUMBERISTEXTText numbers
2120TRUEFALSE2
385FALSETRUE
4240TRUEFALSE
515FALSETRUE
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

E2は、範囲の中で入力されているのに数値ではないセルの数を数えます。ここではアポストロフィ付きで入力された2つです。数値だけのきれいな列では0を返します。

変換する4つの数式

同じ結果、4つの方法
B2
ABC
1TextResultHow
212501250VALUE
31250double minus
41250multiply by 1
51250add 0
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

どんな計算でも、Excelは文字列を数値として読もうとします。VALUEはそれを明示的に書いたものです。--(マイナス記号2つ:マイナスしてもう一度マイナス)は短いので、ほかの数式の中でよく使われます。=SUMPRODUCT(--A2:A5)は作業列なしで文字列の数値の列を合計します。VALUEは通貨記号、桁区切り、パーセント記号の付いた文字列も読めます。VALUE("$1,250")は1250、VALUE("12%")は0.12です。

数量を変換する
B2
AB
1Quantity (text)Quantity
2125
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: A2の数量は文字列として取り込まれました。B2で、それを数値に変換してください。

単位や別の区切り文字が入った文字列

数値として読めないものが文字列に入っていると、VALUEは#VALUE!を返します。よくあるケースが2つあります:

単位とヨーロッパ式の区切り文字
B2
ABC
1TextFixedWithout the fix
2120 kg120#VALUE!
31.234,51234.5#VALUE!
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。
  • 単位や単語:B2のように、先にSUBSTITUTEで取り除きます。
  • 小数点のカンマ:ドイツやブラジルのシステムから来た1.234,5のような数値です。NUMBERVALUE(Excel 2013以降)は、2つ目と3つ目の引数で小数点の記号と桁区切りの記号を受け取ります。VALUEは自分のExcelの区切り文字しか知らないので、C3は失敗します。

数字の前後のスペースではVALUEは止まりませんが、Webページから来たノーブレークスペースでは止まることがあります。SUBSTITUTE(A2,CHAR(160),"")で先に取り除きます。このエラーの一般的な原因は#VALUE!を参照してください。

文字列の金額を合計する
B2
AB
1AmountTotal
2120
345
480
セルをクリックすると数式が見えます。数値や数式を変えると、シートが再計算されます。

やってみよう: A2:A4の金額は文字列として保存された数値です。B2で、1つの数式でその合計を返してください。

数式を使わずにその場で変換する

数式は数値を新しい列に入れます。セルそのものを直すには:

  1. 数値に変換する。 セルを選択し(最初に選択するセルは緑色の三角形が付いたものにします)、選択範囲の横の警告アイコンをクリックして「数値に変換する」を選びます。いちばん手早い方法です。
  2. 区切り位置。 列を選択し、データ > 区切り位置 で、すぐに「完了」をクリックします。Excelがすべてのセルを入力し直し、文字列の数値が数値になります。
  3. 形式を選択して貼り付けの乗算。 空いているセルに1と入力してコピーします。文字列の数値を選択し、ホーム > 貼り付け > 形式を選択して貼り付け で「乗算」を選び、OKをクリックします。

セルの表示形式が文字列になっている(ホーム > 数値の書式 に「文字列」と表示される)ときは、先に「標準」にしてください。そうしないと、入力したものがまた文字列として保存されます。

よくある間違い: 文字列と数値の間で検索する

検索値の101は文字列の101と一致しません。2つのセルが同じに見えても、VLOOKUP、XLOOKUP、MATCHは#N/Aを返し、=A2=101はFALSEです。どちらか片方を変換して、両方を同じ種類にします。検索する列のほうが文字列なら、代わりに探す値を変換します:

=VLOOKUP(TEXT(E2,"0"), A2:C6, 3, FALSE)   E2 is a number, column A holds text numbers
=VLOOKUP(--E2, A2:C6, 3, FALSE)           E2 holds a text number, column A holds numbers

それぞれの側を確かめる方法はISNUMBERとISTEXTのページで紹介しています。

よくある質問

Excelで文字列を数値に変換するには?

数式なら=VALUE(A2)か=--A2です。数式を使わないなら、セルを選択し、横に表示される警告アイコンをクリックして「数値に変換する」を選びます。

ExcelでSUMが0を返すのはなぜですか?

数値が文字列として保存されていて、SUMは文字列を無視するからです。そうしたセルはたいてい左に寄っていて、小さな緑色の三角形が付いています。=VALUE(A2)で変換するか、=SUMPRODUCT(--A2:A10)で直接合計します。

「数値に変換する」が効かない、または表示されないのはなぜですか?

Excelがそれを表示するのは、数値として読める文字列だけです。Webページから来たノーブレークスペース、kgのような単位、自分のExcelが使わない小数点のカンマがあると、緑色の三角形が出ません。先に文字列をきれいにします:=VALUE(SUBSTITUTE(A2,CHAR(160),""))または=NUMBERVALUE(A2,",",".")。

小数点にカンマを使う数値を変換するには?

NUMBERVALUEを使って区切り文字を指定します。=NUMBERVALUE(A2,",",".")は1.234,5を1234.5にします。VALUEが理解するのは、自分のExcelの設定の区切り文字だけです。

Coddyのプログラミング言語のイラスト

Coddyでコードを学ぼう

始める