症状:見た目は数字なのに、合計が合わない
Excelで、金額や数量の列を、SUMで合計したところ、明らかに合計が小さい、あるいは0になってしまう。このような相談を受けることがあります。式を何度確認しても、間違いが見つからない。
実は、見た目が「1,000」と数字に見えるセルが、中身は「文字列」として扱われていることが、原因として、少なくありません。SUM関数は、文字列として扱われているセルを、計算の対象に入れません。そのため、見た目には数字が並んでいても、合計が実際より小さくなります。
私が受けた相談の中でも、この「見た目は1,000なのに、文字列になっていてSUMの対象外だった」というケースは、特に印象に残っています。式は正しいのに結果が合わないため、原因が見つかるまでに、時間がかかるからです。
文字列の数字かどうかを見分ける3つの方法
| 方法 | 数値の場合 | 文字列の場合 |
|---|---|---|
| ① 位置を見る | 右寄せ(初期設定) | 左寄せになっている |
| ② 緑の三角を見る | 出ない | セルの左上に、緑の小さな三角が出る(「数値が文字列として保存されています」) |
| ③ ISNUMBER関数で調べる | =ISNUMBER(C2) が TRUE |
=ISNUMBER(C2) が FALSE |
もう一つ、COUNT関数とCOUNTA関数を比べる方法もあります。COUNTは数値のセルだけ、COUNTAは空白以外のセルすべてを数えます。同じ範囲で、COUNTAのほうが大きければ、数値以外のもの(文字列など)が混ざっているということです。
主な原因
| 原因 | 内容 |
|---|---|
| 他のシステムの出力 | 基幹システムや、Webサービスから出力したCSVの、数字の列 |
| 表示形式が「文字列」 | セルの表示形式が文字列になっていて、入力した数字が、そのまま文字として保存された |
| 先頭の「'」 | 数字の前に、アポストロフィが付いている |
| 前後のスペース | 数字の前後に、見えないスペースが入っている |
| 全角の数字 | 「1000」のように、全角で入力されている |
| ホームページからのコピー | Webの表を貼り付けた時に、文字として取り込まれた |
直し方5つ
状況に応じて、次の5つから選びます。作業の前に、必ず元のファイルのコピーを保存してください。
方法① 「数値に変換」のマークを使う(少ない数のセル向け)
セルを選ぶと、左側に、黄色いひし形の警告マークが出ます。これをクリックし、「数値に変換」を選びます。範囲をまとめて選んでから行えば、一括で変換できます。
方法② 「区切り位置」を使う(列全体を直す時)
- 直したい列を、選択する
- 「データ」タブの「区切り位置」をクリックする
- 表示される画面で、設定は変えずに、そのまま「完了」までクリックする
列全体が、数値に変換されます。1列ずつの作業になる点に、注意してください。
方法③ 「1を掛ける」(範囲を、まとめて直す時)
- 空いているセルに「1」と入力し、コピーする
- 直したい範囲を選択する
- 右クリックから「形式を選択して貼り付け」を開く
- 演算の「乗算」を選び、「OK」をクリックする
文字列の数字に1を掛けることで、数値に変わります。作業後、空いたセルの「1」は削除してください。
方法④ VALUE関数を使う(別の列に、直した値を作る時)
=VALUE(C2) と入力すると、C2の文字列を、数値に変換した値が返ってきます。元の列を残したまま、別の列で数値を作りたい場合に、便利です。
方法⑤ スペースや全角数字が原因の場合
前後にスペースが入っている時は、=TRIM(C2) で、余分なスペースを取り除けます。全角の数字は、=ASC(C2) で、半角に変換できます。両方の問題があるなら、組み合わせて、=VALUE(TRIM(ASC(C2))) のように使います。通常のスペースではない、特殊なスペースが入っている場合は、SUBSTITUTE 関数で除く方法もあります。