
Excelで、数字だと思ったら
「文字だったぁ!?」がおこる原因
& 計算できる「数値」になおす
便利な方法の使いわけ


Excelで集計しようとしたら、合計が「0」になる。
SUM関数が全然効かない。
ピボットテーブルでも、数値として集計されない…。
そんなことはありませんか?
たとえばこんな例です。


さすがに、ここまで明快なまちがいであれば、すぐに気づくことでしょう。
しかし、このトラップが複雑な請求書テンプレートの中にひそんでいて、うっかり「ご請求金額ゼロ円」の請求書を送信してしまったら…、ゾッとしますよね。
このような場合、原因の多くは「見た目は数字なのに、実はExcel内部では”数値”ではなく”文字列”として保存されている」ことにあります。
この記事では、数字が文字列になってしまう代表的な5つの要因や、それを計算可能な数値へもどす5つの方法を紹介します。
CSVの取り込み、請求書や見積書の作成、売上データの集計などで「なぜか計算できない」と悩んだことがある人は、ぜひ参考にしてみてくださいね。
まず確認:文字列になった数字のみわけ方
数値ではなく、文字列として保存された数字は、次のようなサインでみわけることができます。
- セルの左上に緑色の三角マーク(エラーインジケーター)が表示される
- セルを選択すると「テキストとして格納される数値」という注意が出る
- セル内の数字が左よせで表示される(数値は通常、右よせ)
- “=SUM(セル範囲)”としても合計が0になる、または一部の値だけが集計されない
- “=ISNUMBER(セル番地)”の結果が、FALSEになる
Microsoft公式サポートでも、文字列形式の数値にはエラーインジケーターが表示され、そこから「数値に変換する」を選べるとしています。


(画像は、Microsoft公式サポートより転載)
ただし、エラーインジケーターがでないケースもあります。
たとえば、全角数字や、不可視の空白がまざっている場合などです。
「みた目は数字なのに計算できない」ときには、ISNUMBER関数(指定した値やセルが「数値」であるか判定し、真(TRUE)または偽(FALSE)をかえす関数)を使って確認するのが確実でしょう。
数字が文字列となってしまう5つの要因
1. セルの表示形式が「文字列」になっている
入力前にセルの表示形式が「文字列」に設定されていると、数字を入力しても、文字列として保存されます。社員番号や郵便番号など、先頭のゼロを保持したい項目でよく使われる設定ですよね。
問題は、その書式設定が、意図せず広い範囲へ適用されてしまうことです。「金額」や「数量」の列まで文字列書式になっていれば、入力した数字はすべて文字列になってしまいます。
2. 数字の先頭にアポストロフィがついている
‘123 のように、数字の先頭にシングルクォーテーション( ‘ )をつけると、Excelはそれを文字列としてあつかいます。先頭ゼロをのこしたい場合などに使われる入力方法です。
このシングルクォーテーション( ‘ )はセルには表示されませんが、数式バーでは確認できます。人から受け取ったExcelファイルで「なぜか計算できない!?」場合には、まずは数式バーを確認してみてください。
3. CSVなど外部データをそのままひらいた or はりつけた
CSVファイルをExcelで直接ひらいたり、Webや業務システムからコピー&ペーストしたりすると、数値列が文字列として読みこまれることがあります。特に、次のようなデータで起きやすいです。
- 先頭ゼロを含むコード列
- カンマ区切りの金額(例:1,234)
- 通貨記号つきの金額(例:¥1,234)
- 全角数字(例:123)
区切り位置ウィザードを使えば、列ごとにデータ形式を指定して読みこめるため、外部データの取りこみ時には、こちらの方が安全です。


4. 全角数字・スペース・通貨記号などがまざっている
「123」(全角数字)、「 123 」(前後にスペース)、「¥1,234」(通貨記号とカンマ)などは、そのままでは数値として認識されない、もしくはただしく計算されないことがあります。
特にやっかいなのが、目に見えない「改行なしスペース」(CHAR(160))です。
Webからコピーしたデータや、一部の業務システムから出力したCSVに、よく含まれています。TRIM関数で通常の半角スペースは除去できますが、CHAR(160)は除去できないため、SUBSTITUTE関数との組み合わせなどが必要になります。
5. 数式やシステム出力の結果が文字列になっている
TEXT関数を使ったり、&で文字列を連結したりすると、結果は文字列になります。たとえば =TEXT(セル番地,”0″) の結果は、みた目が数字でも文字列です。
また、外部システムやWebスクレイピングで取得したデータも、数値型ではなく、文字列型で出力されることがあります。この場合も、データ自体は正しいのに、Excel側では数値としてあつかえない状態になります。
数値へ変換する5つの代表的な方法
方法1:エラーインジケーターから「数値に変換する」
もっともお手軽な方法です。
対象セルを選択し、左上に表示された緑色の三角マークをクリックして、「数値に変換する」をえらびましょう。
- 向いている場面:1ヶ所、もしくは少量~中量のデータをなおしたいとき
- 注意点:緑の三角がでないケース(全角数字、不可視スペースなど)には使えません
方法2:VALUE関数で別列に変換する
=VALUE(セル番地)のように、元データのとなりに新しい列を作って、数式を入力します。
- 向いている場面:元データをのこしながら変換したいとき
- 注意点:変換後の列を[値はりつけ]しておかないと、数式が残ったままになります(=元セルに変更が加わると、数値も変わってしまいます)
方法3:区切り位置ウィザードを使う
対象列を選択し[データ]タブ→[区切り位置]→そのまま[完了]をクリックします。列のデータ形式で[G/標準]をえらべば、文字列の数字は数値に変換されます。
- 向いている場面:CSVなど、列単位で一括して変換したいとき
- 注意点:列全体へ適用されるため、途中に文字列がまざっている列などでは、注意が必要です
方法4:「1」を乗算して、はりつける
あいているセルに、半角で 1 を入力してコピーし、変換したい範囲を選択して、[形式を選択して貼り付け]→[乗算]を実行します。文字列の数字に1をかけることで、数値に変換されるしくみです。
- 向いている場面:関数列を作らずに、既存のセルを直接なおしたいとき
- 注意点:元データを直接書きかえるため、実行前にバックアップを取るか、別シートで試す方が安全です
方法5:TRIM・SUBSTITUTE・CLEANを組み合わせる
不可視の空白や、不要な記号が原因の場合などには、関数をくみあわせます。
=VALUE(SUBSTITUTE(TRIM(セル番地),CHAR(160),””))
上記の式は、TRIMで前後のスペースを除去し、SUBSTITUTEで改行なしスペース(CHAR(160))を除去してから、VALUEで数値化する関数式です。
- 向いている場面:Web取得データや外部システム出力など、クレンジングが必要なデータ
- 注意点:通貨記号(¥)やカンマ( , )などが含まれる場合は、さらにSUBSTITUTEを追加して除去する必要があります
ビジネス実務上の注意点
1.先頭ゼロが必要なコード類を、安易に数値化しない
郵便番号・社員番号・商品コードなど、計算には使わないけれど、先頭のゼロを保持したい数字まで、無条件に列ごと(もしくは行ごと)数値化してしまうと、”001”が”1”になってしまいます。
こうした識別子は、文字列のまま保持するのが安全です。数値化すべきところは、売上・数量・単価など、実際に計算に使う項目だけにしぼっておきましょう。
2.一括変換の前にはバックアップを
特に 1 を乗算する方法や、[区切り位置ウィザード]などは、元データを直接書きかえます。実行前にファイルのコピーをとるか、別シートで試してから本番データに適用する方が安全です。
3.変換後はISNUMBERで確認する
変換が正しくできたかどうかは、=ISNUMBER(セル番地)で確認できます。
TRUEなら数値、FALSEならば、まだ文字列のままです。
大量データの場合には、この確認列を作ってから[値はりつけ]をすれば安心です。
まとめ:Excelで正しく計算できませんか?原因を見きわめて、適切な方法をえらびましょう
数字が文字列になる原因は、大きくわけて、「入力時の設定」、「外部データの取り込み」、「不要な文字混入」の3つです。
そして、変換方法も「手軽さ重視」、「元データ保持重視」、「一括処理重視」で使いわけると、効率的です。


「なぜか計算できない」ときは、まず原因を特定し、それから適切な変換方法をえらびましょう。



このひと手間で、集計ミスや手もどりをへらせ、サッサと帰るくん( ₍ᐢ_ᐢ₎ケロケロ ) に変身できるかもしれませんよ。
■ 「VBA健康診断」始めます。
私たちが長年培ってきた「現場の知見」を掛け合わせ、「VBA健康診断・仕様書化パック」という新サービスを正式にリリースしました。
- 仕様書のないマクロのドキュメント化
- 隠れたバグや「2025年の崖」リスクの洗い出し
- 将来的なWebシステム化への移行ロードマップ作成
これらを、従来の常識を覆すスピードと価格で提供します。
\ まずは無料診断から /















