CSVをExcelで開いたら合計が0だった|「見た目は数字」の正体と、壊さずに取り込む手順

初心者シリーズ

月末の締め作業中に、販売管理システムから落としたCSVをダブルクリックで開いて、金額の列にSUM関数を入れた。表示されたのは「0」。

数字はちゃんと並んでいます。1,248行、どこを見ても空欄はありません。それなのに合計が出ない。私が最初にこれをやったときは、数式の範囲がずれているんだと思い込んで、=SUM(D2:D1249) を3回打ち直しました。範囲は合っていました。犯人は数式ではなく、CSVをExcelが読み込んだ瞬間の判定でした。

このトラブルの厄介なところは、画面上はまったく異常に見えないことです。エラー表示も出ないし、文字化けもしていない。見た目が完全に数字なので、「データ側の問題かもしれない」という発想にたどり着くまでに時間がかかります。

今回は、CSVから取り込んだ数字が文字列になってしまう現象について、切り分け → 原因パターンの特定 → 直し方の使い分け → そもそも壊さない取り込み方 という順番で整理していきます。すでに崩れたファイルを今すぐ直したい方は、後半の「直し方を3ルートから選ぶ」から読んでも大丈夫です。

まず30秒で切り分ける

原因を考える前に、本当に文字列化しているのかどうかをはっきりさせます。これを飛ばして直し方から入ると、別の原因だったときに時間を丸ごと無駄にします。

やること:COUNTとCOUNTAを並べて比べる

空いているセル2つに、次の2つを入力してください。範囲はご自分のデータに合わせて変えます。

=COUNT(D2:D1249)
=COUNTA(D2:D1249)

COUNTは数値だけを数えます。COUNTAは空欄以外すべてを数えます。この2つの結果を見比べると、状況が一発で分かります。

COUNTの結果

COUNTAの結果

判定

0

1248

列まるごと文字列。取り込み時に全部が文字として読まれている

1180

1248

一部だけ文字列。68件だけ何かが混ざっている

1248

1248

数値として認識されている。原因は別にある

COUNTの結果COUNTAの結果判定
01248列まるごと文字列。取り込み時に全部が文字として読まれている
11801248一部だけ文字列。68件だけ何かが混ざっている
12481248数値として認識されている。原因は別にある

3つ目、つまり両方の数が一致しているのに合計が合わない場合は、CSVの文字列化ではありません。四捨五入や小数の表示桁が絡んでいる可能性が高いので、そちらの記事を確認してみてください。

小数点の形式が違うケースの見分け方

同じ「10」なのに一致しない|Excelの小数点の見えないズレを見つけてROUNDで直す方法
Excelで見た目は同じ数字なのに=A1=B1がFALSEになる、VLOOKUPで#N/Aが出る、合計が数円ずれる。原因は浮動小数点誤差かもしれません。ズレを見える化する3つの実験、ROUND関数を入れるべき場所、表示形式で隠してはいけない理由まで、Excel初心者向けに実務手順で解説します。

補助の確認方法

COUNTとCOUNTAで見当がついたら、次の2つで裏を取ります。

ステータスバーを見る 金額の列を範囲選択して、画面の一番下(ステータスバー)を見てください。数値として認識されていれば「合計:◯◯」が表示されます。「データの個数」しか出ていなければ、選択したセルの中に数値が1つもないということです。範囲選択するだけで確認できるので、これがいちばん速い方法です。

ISNUMBERで1セルずつ確かめる どの行が怪しいのかを突き止めたいときは、隣の空き列に次の式を入れて下までコピーします。

=ISNUMBER(D2)

TRUEなら数値、FALSEなら文字列です。FALSEの行だけフィルターで抽出すれば、混入している行の特徴(特定の支店だけ、特定の月だけ、など)が見えてきます。1000行を超えるデータでは、この「FALSEだけ抽出」がかなり効きます。

なお、セルの左上に緑の三角が出ていれば、Excelが「数値が文字列として保存されています」と教えてくれている状態です。ただし、この三角は設定によっては表示されませんし、桁区切りカンマ付きのデータでは出ないこともあります。出ていれば文字列化確定、出ていなくても安心はできない、という位置づけで見てください。

なぜCSVだと文字列になるのか

理由はシンプルで、CSVというファイル形式には「型」の情報がないからです。

CSVの中身は、拡張子を.txtに変えてメモ帳で開くと丸見えになります。実際に開くと、こんな行が並んでいるだけです。

伝票日付,得意先,商品コード,金額
2026/05/01,山田商事,00123,"1,200"
2026/05/01,佐藤工業,00456,"2,450"

ここには「金額の列は数値です」という宣言がどこにもありません。あるのは、カンマで区切られた文字の並びだけです。だからExcelは、開くときに1セルずつ「これは数値か、文字列か、日付か」を自分で判断するしかない。この推測が外れたときに、今回のトラブルが起きます。

原因の根っこは、数字が文字列になっているという現象そのものです。CSV特有の話に見えて、実は同じ問題の入口違いなので、基本の見分け方はそちらの記事が詳しいです。

数字が文字列になっているときの基本の見分け方

SUM関数が計算されない一番多い原因は「数字の文字列化」|見分け方と直し方
SUM関数の合計が0になる、一部しか計算されない――実はその原因の多くは「数字が文字列になっている」ことです。見分け方4つと状況別の直し方を、実務目線で具体的に解説します。

文字列化するCSVには5つのパターンがある

ここが今回いちばん伝えたいところです。同じ「文字列化」でも、原因のパターンによって直し方が変わります。VALUE関数を入れたのに#VALUE!が返ってきた、という経験がある方は、たいていパターンの読み違いが起きています。

ケースA:桁区切りのカンマが入っている

CSVの中身が "1,200" のように、カンマ付きの金額として出力されているパターンです。CSVはカンマで列を区切る形式なので、値そのものにカンマが含まれる場合はダブルクォートで囲まれます。Excelはこれを素直に読み込みますが、環境や設定によっては数値に変換しきれず、文字列のまま置かれることがあります。会計ソフトや販売管理ソフトの出力で、もっともよく見るパターンです。

ケースB:通貨記号や単位が付いている

¥1,200 や 1200円、3.5kg のように、数字以外の文字がくっついているパターンです。人間が読む前提で作られた帳票をそのままCSVに出すと、こうなります。この場合は100%確実に文字列になります。数字と単位が同居している以上、Excelには数値として扱いようがありません。

単位や形式がバラバラな数値の直し方

見た目は同じ「100」なのに合計が合わない|Excelで数値の形式がバラバラなときの見分け方と直し方
ExcelでSUMの合計やVLOOKUPの結果が合わない原因は、数値の形式の不統一かもしれません。文字の数字・全角数字・隠れ小数の見分け方から、ステータスバーやジャンプ機能での特定方法、区切り位置・VALUE関数・乗算貼り付けでの直し方まで初心者向けに解説します。

ケースC:先頭ゼロを守るために文字列指定されている

商品コード00123、郵便番号0120001、電話番号03-1234-5678のように、先頭の0が意味を持つデータです。数値として読み込むと0が消えてしまうため、出力側があえて文字列として書き出しています。これは壊れているのではなく、仕様として正しい状態です。

問題は、このコード列が文字列なのは正解なのに、金額列まで一緒に文字列で出力されてしまうケースがあること。出力側が「全列を文字列にする」設定になっていると、こうなります。

ケースD:アポストロフィが付いている

セルをクリックすると数式バーに '1200 と表示されるパターンです。先頭のシングルクォート(アポストロフィ)は、セル上には表示されないのに、「この中身は文字列として扱え」という命令として機能します。セル内には見えないので、気づくまでに時間がかかる相手です。

アポストロフィが付いた数字の見つけ方と消し方

Excelでアポストロフィが付いた数字は合計されない|見えない「’」の見つけ方と直し方
ExcelでSUM関数の合計が0になる原因の一つが、数字の先頭に付いたアポストロフィ(')です。数式バーでの見つけ方、COUNT関数を使った件数の数え方、区切り位置・乗算・VALUE関数による件数別の直し方、直らないときの原因まで実務目線で解説します。

ケースE:全角数字や見えない空白が混ざっている

古いシステムや、人の手が入った中間ファイルを経由したCSVでよくあります。1200のような全角数字、数字の前後に入った半角スペース、Webからコピーされたデータに紛れ込む特殊な空白(見た目はスペースなのに、TRIM関数では消えないもの)などです。

このケースは、1248行のうち数十行だけが該当する、という混在型になりやすいのが特徴です。先ほどのISNUMBERでFALSEの行を抽出する手順が、ここで効いてきます。

直し方を3ルートから選ぶ

パターンが分かったら、直し方を選びます。全部を1つの方法で片付けようとしないのが、結果的にいちばん早いです。

ルート向いている状況数式元データ
①エラーインジケーター数十件まで。単純な数字だけ不要直接上書き
②区切り位置列まるごと。ケースA・C・D不要直接上書き
③関数(VALUE系)ケースB・E。記号や全角が混在必要別列に作成

ルート①:警告マークから「数値に変換する」

文字列化しているセルを範囲選択すると、左上に黄色い「!」マークが出ます。これをクリックして「数値に変換する」を選ぶだけです。

手軽ですが、件数が多いと動作が重くなります。数百件を超えるなら、次のルート②に切り替えたほうが確実です。また、ケースBのように記号が付いている場合、このメニュー自体が出てこないことがあります。

ルート②:区切り位置で列まるごと変換する

個人的にいちばん使用頻度が高いのがこれです。数式を使わないのに、列全体を一度に処理できます。

  1. 対象の列を、列見出しをクリックして丸ごと選択する
  2. 「データ」タブ →「区切り位置」をクリック
  3. ウィザードが開くが、何も変更せずに「完了」を押す

たったこれだけで、文字列だった数字が数値として読み直されます。Excelに「この列をもう一度判定し直して」と命令しているイメージです。アポストロフィも、このやり方でまとめて外れます。

ただし注意点が1つ。この操作は先頭ゼロも一緒に消します。商品コードの列に対して実行すると、00123が123になって取り返しがつかなくなります。必ず、数値化したい列だけを選択してから実行してください。

ルート③:関数で整えてから値に固定する

記号や全角が混ざっているケースB・Eは、区切り位置では直りません。ここは関数の出番です。

素の状態なら、VALUE関数だけで済みます。

=VALUE(D2)

ただし、これで#VALUE!が返ってくるなら、数字以外の文字が残っています。その場合は、余計な文字を取り除いてからVALUEに渡します。

=VALUE(SUBSTITUTE(SUBSTITUTE(D2,",",""),"円",""))

SUBSTITUTEは「特定の文字を別の文字に置き換える」関数で、置き換え先を空欄("")にすると削除として機能します。上の式はカンマと「円」を消してから数値に変換しています。

全角数字が混ざっているなら、ASC関数で半角に揃える工程を足します。前後の空白も一緒に落とすなら、TRIMも重ねます。

=VALUE(SUBSTITUTE(ASC(TRIM(D2)),",",""))

内側から順に、TRIMで前後の空白を取り、ASCで全角を半角にし、SUBSTITUTEでカンマを消し、最後にVALUEで数値化しています。長く見えますが、やっていることは掃除の手順を並べただけです。

全角数字が混ざっているときの直し方

全角数字が原因でSUM関数が計算されない時の見分け方と直し方
ExcelでSUM関数の合計が実際より少なくなる原因の一つが「全角数字」です。半角と全角の違いによる見分け方と、置換やASC関数を使った直し方を実務目線で解説します。

忘れてはいけないのが、最後の一手間です。 関数で作った列は、あくまで元の列を参照している計算結果です。元の列を削除すると、結果も一緒に消えます。

  1. 作った列を丸ごとコピーする
  2. 「ホーム」→「貼り付け」の下矢印 →「値」を選んで、同じ場所に貼り付ける
  3. これで数式が消えて、数値そのものになる
  4. ここまで終わってから、元の列を削除する

順番を間違えると、直したはずのデータが全部#REF!になります。私は一度これで作りかけの集計表を吹き飛ばしました。

おまけ:1を掛けるだけで直る場合もある

シンプルな文字列数字なら、四則演算を通すだけで数値に変わります。

=D2*1

空いているセルに1と入力してコピーし、対象範囲を選んで「形式を選択して貼り付け」→「演算:乗算」を選ぶと、別列を作らずにその場で数値化できます。列を増やしたくないときの逃げ道として覚えておくと便利です。

そもそも壊さずに取り込む

ここまでは「壊れたあとの直し方」でした。毎月同じCSVを扱うなら、開き方そのものを変えたほうが根本的に楽です。

CSVファイルをダブルクリックで開く、という習慣が事故の原因になっています。ダブルクリックは、Excelの自動判定に全部を委ねる開き方だからです。代わりに、次の手順で取り込みます。

  1. Excelを先に起動して、空白のブックを開く
  2. 「データ」タブ →「テキストまたはCSVから」をクリック
  3. 対象のCSVファイルを選ぶ
  4. プレビュー画面が出たら、右下の「データの変換」をクリック
  5. エディター画面で、列見出しの左にあるアイコンをクリックして型を指定する
  6. 「ホーム」→「閉じて読み込む」でシートに取り込む

ポイントは5番です。金額や数量の列は「整数」または「10進数」、商品コードや郵便番号は「テキスト」を指定します。ここで明示してしまえば、Excelの判定に振り回されることがなくなります。

この方法にはもう1つ利点があります。取り込み設定がブックに保存されるので、翌月は新しいCSVに差し替えて「更新」を押すだけで同じ整形が再現されます。毎月30分かけて手作業で直していたなら、初回の設定10分で元が取れます。

ダブルクリックで開くと文字列化のほかにも、2026/5/1が5月1日表示に化ける、00123の先頭ゼロが消える、長い数字が1.23E+15のような指数表記になる、といった事故が起きます。どれも、開いた瞬間に元の情報が失われるタイプの損失です。数値の判定だけでなく、文字コードの読み違いで文字化けが起きることもあります。

文字コード違いで一致しなくなるケース

同じ「アップル」なのに一致しない|Excelの半角・全角(文字コード違い)を見抜いて直す方法
見た目は同じなのにVLOOKUPやCOUNTIFが一致しない原因は、半角カナと全角カナなどの文字コード違いかもしれません。LEN・UNICODEでの確かめ方、ASC・JIS・置換の使い分け、混在を防ぐ条件付き書式まで実務目線で解説します。

CSVを開いた直後の3分点検

慣れてくると、この確認は本当に3分で終わります。集計を始める前に、毎回これだけやってください。

  • 金額・数量の列が右寄せになっているか(左寄せなら文字列を疑う)
  • 列を選択して、ステータスバーに合計が表示されるか
  • =COUNT()と=COUNTA()の数が一致しているか
  • 日付の列が日付として扱われているか(右寄せか、=ISNUMBER()がTRUEか)
  • 商品コードの先頭ゼロが残っているか
  • 想定した行数どおり取り込まれているか(改行を含むデータがあると行がずれることがある)

最後の項目は見落とされがちです。備考欄などにセル内改行が入ったデータをCSV化すると、行が分裂して取り込まれることがあります。

セル内改行が残っているときの見つけ方

セル内の改行でVLOOKUPが一致しない|「Alt+Enterの跡」を見つけて消す手順
Excelでセル内の改行が原因でVLOOKUPが一致しない、検索でヒットしない。FIND関数とCHAR(10)を使った30秒判定、SUBSTITUTE・CLEANでの削除、Ctrl+Jによる一括置換まで、初心者向けに手順で解説します。

よくある質問

Q. 区切り位置を実行したのに、一部のセルだけ文字列のままです

そのセルには、カンマや円記号以外の文字が残っています。数式バーで中身を確認して、末尾にスペースが入っていないか、全角数字が混ざっていないかを見てください。混在型のケースEに該当します。

Q. 先頭ゼロを残したまま、その列で計算もしたいです

1つの列で両立はできません。コード列は文字列のまま残し、計算用に別列を作るのが実務的な解決です。列を分けることを「面倒」と感じるかもしれませんが、あとから片方を壊す事故を確実に防げます。

Q. CSVを上書き保存したら書式が消えました

CSVには書式情報を保存できません。色付けや列幅を残したい場合は、必ず.xlsx形式で別名保存してください。CSVは受け渡し用の入れ物であって、作業用のファイルではない、と割り切るのが安全です。

Q. 毎回同じCSVを扱います。マクロを組むべきですか

その前に、先ほどの「テキストまたはCSVから」での取り込みを試してみてください。定型の整形であれば、マクロを書かずに更新ボタンだけで回せることがほとんどです。

研究員メモ

このシリーズを通して何度も書いていることですが、Excelでは「見た目が数字」=「数字」ではありません。人の目には同じでも、内部では別物として扱われている。CSVは、その落差がもっともはっきり出る場面です。

そしてCSVの文字列化がやっかいなのは、エラーが出ないことです。#N/Aや#VALUE!が出てくれるトラブルは、まだ親切なほうです。合計が0と表示されるだけなら、まだ気づけます。怖いのは、1248行のうち68行だけが文字列化していて、合計が「それらしい数字」として出てしまうケース。これは検算しない限り誰も気づきません。

だからこそ、COUNTとCOUNTAの比較という地味な確認を、開いた直後にやる価値があります。式を2つ打つだけで、「全部大丈夫」か「一部だけ怪しい」かが数字で分かる。この習慣があるかどうかで、月次の精度がはっきり変わります。

まとめ

今回のポイントを整理します。

  • 切り分け:COUNTとCOUNTAを比べる。ステータスバーに合計が出るかを見る
  • 原因:CSVには型の情報がないため、Excelが読み込み時に判定を誤る
  • パターン:桁区切りカンマ/通貨記号・単位/先頭ゼロ保持/アポストロフィ/全角・空白の5種類があり、直し方が変わる
  • 直す:少量はエラーインジケーター、列まるごとは区切り位置、記号混在はVALUE+SUBSTITUTE。関数を使ったら必ず値として貼り直す
  • 防ぐ:ダブルクリックをやめ、「データ」タブの「テキストまたはCSVから」で列の型を指定して取り込む

CSVそのものは悪者ではありません。どんなシステムからでも出せて、どこでも読める、非常に優秀な受け渡し形式です。ただ、Excel向けに整えられているわけではない、というだけのこと。取り込んだ直後に状態を確認するという一手間を挟めば、ほとんどの事故は防げます。

関数そのものの使い方をもう一度確認したい方は、SUM関数の基本を整理した記事もあわせてどうぞ。

SUM関数の基本と使い分け

SUM関数の使い方を基礎から解説|合計が正しく出ない時の対処法つき
SUM関数の基本の書き方から、串刺し集計・引き算への応用、そして「合計が合わない」ときの症状別の原因診断まで実務目線で解説。文字列化・非表示行・手動計算など、エラーが出ないのに数字がズレる原因の見つけ方がわかります。

なお、実務のCSVでは、今回の原因が2つ以上同時に起きていることが珍しくありません。桁区切りカンマと全角数字が混在していて、区切り位置でもVALUEでも片付かない、というような状況です。そうしたときに、どの順番で原因を潰していくかを診断フロー形式でまとめたものをnoteに置いています。もう一歩踏み込みたい方はこちらへ。

原因が2つ以上重なっているときの絞り込み方(note)

コメント

タイトルとURLをコピーしました