Excelで数式を入力したら、計算結果のかわりに #VALUE! という文字が表示された経験はありませんか。
見た目には何も問題がなさそうなのに計算できないので、原因がわからず手が止まってしまいがちなエラーです。実は #VALUE! は「データの型が合っていない」というサインです。原因のパターンさえ知っておけば、ほとんどのケースをすぐに解決できます。
この記事では、Excelの #VALUE! エラーが出る原因をパターン別に整理し、それぞれの診断方法と直し方を解説します。さらに、二度とエラーを出さないための防御的な数式の作り方も紹介します。
ExcelのVALUEエラー(#VALUE!)とは?
#VALUE!(読み方:バリュー)とは、数式や関数の引数に「想定していない種類のデータ」が渡されたときにExcelが返すエラーです。
Excelのデータには、大きく分けて「数値」と「文字列」という型があります。たとえば足し算は数値どうしで行う計算です。そのため片方に文字列が混ざっていると、「計算できません」という意味で #VALUE! を返します。
#VALUE! は、Excelに表示されるエラー値の中でもとくに原因の幅が広いのが特徴です。文字列の混入、スペースの混ざり込み、日付書式の不一致など、さまざまな要因で発生します。だからこそ、原因をパターンに分けて切り分けることが解決への近道になります。
Excelのエラー値は全部で12種類あります。#VALUE! 以外のエラーも含めた全体像は、Excelエラー値12種類の原因と対処法一覧 で確認できます。
#VALUE!エラーの主な原因5パターン早見表
#VALUE! が発生する原因は、おもに次の5パターンに分類できます。まずは早見表で全体像をつかみましょう。
| パターン | 原因 | 発生しやすい状況 |
|---|---|---|
| 文字列の混入 | 数値計算に文字列が混ざっている | =A1+B1 でセルに文字が入っている |
| スペース・非表示文字 | 見た目は空白でも文字が入っている | データを貼り付けた・取り込んだセル |
| 日付・時刻の型違い | テキストの日付を計算に使っている | 他システムから取り込んだ日付 |
| 範囲・配列のサイズ違い | 単一セルを想定する引数に範囲を渡した | 引数の指定ミス |
| 引数の型違い | 数値を想定する引数に文字列を渡した | 関数の引数指定ミス |
自分の数式がどのパターンに当てはまるかを意識しながら、次の章で具体的な診断と修正を見ていきましょう。
原因別の診断方法と直し方
ここからは、5つの原因パターンごとに「どう診断するか」と「どう直すか」をセットで解説します。
パターン1:文字列が数値計算に混ざっている
もっとも多いのが、足し算や引き算などの計算に文字列が混ざっているケースです。
NG例
=A1+B1
この数式で A1 に 100、B1 に abc のような文字列が入っていると、#VALUE! になります。算術演算子(+ - * /)は、文字列を自動で数値に変換してくれません。そのため、計算できない文字が1つでもあるとエラーになります。
診断方法
計算に使っているセルに、数値以外の値が入っていないかを確認します。=ISTEXT(A1) と入力して TRUE が返れば、そのセルは文字列です。
直し方その1:SUM関数に置き換える
+ 演算子は文字列の混在に弱いですが、SUM関数は範囲内の文字列や空白を無視して数値だけを合計します。
=SUM(A1:B1)
合計を出したいだけなら、+ をやめて SUM に置き換えるだけでエラーが消えるケースは少なくありません。
直し方その2:VALUE関数で数値に変換する
「1234」のように数値を表す文字列であれば、VALUE関数で数値に変換してから計算できます。
=A1+VALUE(B1)
文字列を数値に変換する方法は、VALUE関数の使い方 で詳しく解説しています。「1,234」のように桁区切りカンマや通貨記号が混ざった文字列は VALUE では変換できないことがあります。その場合は、区切り記号を指定して変換できる NUMBERVALUE関数の使い方 を参考にしてください。
パターン2:スペースや非表示文字が混ざっている
見た目には空白にしか見えないのに #VALUE! が出る場合、セルにスペースや非表示文字が混入していることがあります。
全角スペース、半角スペース、改行、システムから取り込んだ際の非表示文字などは、すべて「文字列」として扱われます。見た目が空欄でも、Excelの中身は文字列なので、計算に使うとエラーになるわけです。
診断方法
=ISTEXT(A1) で文字列かどうかを判定します。あわせて =LEN(A1) を使うと、セルの文字数がわかります。空白に見えるのに文字数が1以上なら、何かしらの見えない文字が入っている証拠です。
直し方:TRIMやASCでクレンジングする
前後や単語間の余分なスペースは、TRIM関数で除去できます。
=TRIM(A1)
TRIM関数の使い分けは TRIM関数の使い方 で解説しています。全角の数字が原因になっている場合は、ASC関数の使い方 で半角に統一すると解決することがあります。
TRIMでも取りきれない非表示文字が残ることもあります。改行やNBSPなどが残るときは、CLEAN関数やSUBSTITUTE関数を組み合わせます。
=SUBSTITUTE(CLEAN(TRIM(A1)),CHAR(160),"")
CHAR(160)は、Webページなどから貼り付けたときに混ざりやすい特殊な空白文字です。これを取り除くことで、頑固な #VALUE! が解決することがあります。
パターン3:日付や時刻の型が合っていない
日付を扱う計算でも #VALUE! はよく発生します。とくに、他のシステムやCSVから取り込んだ日付は「日付のように見えるテキスト」になっていることが多いものです。これを計算に使おうとすると、型が合わずエラーになります。
NG例
=DATE(2024,"十二",1)
月の引数に漢数字を指定すると、Excelは数値として認識できず #VALUE! になります。
診断方法
セルを選択して、画面右下のステータスバーや表示形式を確認します。日付として右揃えで表示されていれば正しい日付(シリアル値)、左揃えで表示されていればテキストの可能性が高いです。
直し方:DATEVALUEで日付に変換する
テキストの日付は、DATEVALUE関数でシリアル値(Excelが日付として扱える数値)に変換できます。
=DATEVALUE(A1)
文字列の日付をExcelの日付に変換する手順は、DATEVALUE関数の使い方 で詳しく解説しています。
パターン4:範囲や配列のサイズが合っていない
本来は1つのセルを指定する引数に、複数セルの範囲を渡してしまうと #VALUE! になることがあります。また、配列を使った計算で、左右の範囲のサイズが揃っていない場合にも発生します。
NG例
=A1:A3*B1
3つのセルと1つのセルを掛けようとして、計算の対象がかみ合わずエラーになるパターンです。
診断方法
数式の引数を1つずつ見て、単一セルを想定している場所に範囲(A1:A3 のようなコロンを含む指定)が入っていないかを確認します。
直し方:正しい範囲・参照に修正する
引数の指定を見直し、想定どおりの単一セルや、サイズの揃った範囲に書き直します。掛け合わせる範囲は行数・列数を一致させるのが基本です。
=A1:A3*B1:B3
パターン5:関数の引数の型が違っている
関数によっては、特定の引数に数値を渡すことが前提になっているものがあります。そこに文字列を渡すと #VALUE! になります。
診断方法
数式バーで関数の引数を1つずつ確認し、数値を指定すべき場所に文字列やテキストが入っていないかを見ます。引数として参照しているセルが、別のエラーを返していないかもあわせて確認します。
直し方:引数を正しい型にそろえる
数値を指定すべき引数には数値(または数値を返すセル参照)を渡します。文字列のセルを参照している場合は、VALUE関数で数値に変換してから渡すと解決します。
#VALUE!エラーの原因を特定する3つの診断テクニック
原因のパターンがわかっても、複雑な数式では「どこで」エラーになっているのか特定しづらいものです。ここでは、原因の箇所をピンポイントで突き止める3つのテクニックを紹介します。
テクニック1:数式の検証を使う
複数の関数が入れ子になった数式では、「数式の検証」機能が役立ちます。
- エラーが出ているセルを選択する
- 「数式」タブの「ワークシート分析」グループにある「数式の検証」をクリックする
- 「検証」ボタンを押すたびに、数式が1ステップずつ計算される
どのステップで #VALUE! が現れるかを見れば、原因の箇所がすぐにわかります。
テクニック2:F9キーで部分評価する
数式バーで数式の一部だけを選択し、F9キーを押すと、その部分の計算結果だけが表示されます。
たとえば =A1+B1+C1 のうち A1+B1 だけを選択してF9を押せば、その時点の計算結果がわかります。エラーが出る箇所を絞り込んだら、Escキーを押すと元の数式に戻ります。確定(Enter)してしまうと数式が値に置き換わるので、必ずEscで戻してください。
テクニック3:ISTEXTとLENでセルの中身を確認する
セルの中身が「数値か文字列か」「見えない文字が入っていないか」を確かめるには、ISTEXTとLENが便利です。
=ISTEXT(A1)
=LEN(A1)
ISTEXTが TRUE を返せば文字列、LENで予想外の文字数が出れば見えない文字が入っています。セルの値を判定する方法は、ISTEXT関数の使い方 で詳しく解説しています。
#VALUE!エラーを防ぐ防御的な数式設計
原因を直すだけでなく、最初からエラーが出にくい数式を組んでおくと、後々のトラブルを減らせます。ここでは予防のための3つの設計パターンを紹介します。
IFERRORでエラー時の表示を整える
IFERROR関数を使うと、エラーになった場合に空白や任意のメッセージを表示できます。
=IFERROR(A1+B1,"")
これで、データ入力が途中のシートでも #VALUE! が表に出てこなくなります。ただし、IFERRORは原因を隠すだけなので、本当に直すべきエラーまで見えなくなる点には注意してください。詳しい使い方は IFERROR関数の使い方 を参考にしてください。
ISTEXTで入力をチェックする
計算前に、セルが数値かどうかをチェックする仕組みを入れておくと安心です。
=IF(ISTEXT(A1),"数値を入力してください",A1*1.1)
文字列が入っていたら警告を出し、数値のときだけ計算する流れです。入力ミスを早い段階で検出できます。
取り込んだデータは先にクレンジングする
CSVや基幹システムから取り込んだデータは、スペースや非表示文字が混ざりやすいものです。計算に使う前に、TRIMやCLEANでまとめてクレンジングしておくと、#VALUE! の発生をまとめて防げます。
=VALUE(TRIM(A1))
スペースを除去してから数値に変換することで、文字列由来のエラーを未然に防げます。
#VALUE!エラーでよくある質問
SUM関数なら#VALUE!は出ないのですか?
SUM関数は範囲内の文字列や空白を無視して数値だけを合計するため、+ 演算子に比べて #VALUE! が出にくい特性があります。ただし、SUMの引数自体が別のエラー(#REF! など)を含んでいる場合は、SUMでもエラーになります。
IFERRORで隠すのは良くないのですか?
IFERRORは便利ですが、エラーの原因を解決せずに見えなくするだけです。集計結果が静かにずれてしまう危険があります。まずは原因を特定して直し、表示を整える目的だけにIFERRORを使うのがおすすめです。
エラーを判定だけしたい場合はどうすればいいですか?
セルがエラーかどうかをTRUE/FALSEで判定したいときは、ISERROR関数を使います。条件付き書式と組み合わせると、エラーセルを色分けして見つけやすくできます。詳しくは ISERROR関数の使い方 を参考にしてください。
まとめ|#VALUE!は「型の不一致」を疑う
Excelの #VALUE! エラーについて、原因のパターンと直し方を解説しました。最後にポイントを整理します。
#VALUE!は、引数に 想定外の型のデータ が渡されたときに出るエラー- 原因は 文字列の混入・スペース・日付の型違い・範囲のサイズ違い・引数の型違い の5パターンに集約される
- 見た目が空白でも、全角スペースや非表示文字が混ざっていると発生する(ISTEXTとLENで診断する)
- 直すときは、SUMへの置き換え・VALUE/DATEVALUEでの変換・TRIMでのクレンジング が定番
- 複雑な数式は「数式の検証」やF9キーの部分評価で原因の箇所を特定する
- 予防には IFERROR・ISTEXTによる入力チェック・取り込みデータの事前クレンジング が有効
#VALUE! は原因の幅が広いぶん戸惑いやすいエラーですが、「型が合っていないのでは」と疑ってパターンを順に確認すれば、落ち着いて解決できます。エラーが出たら、まずはセルの中身が数値なのか文字列なのかを確かめることから始めてみてください。

