Excel を使っていると、こんな不思議な現象に出会うことがあります。
数値を文字列にしたとき「'200 」と入力したのに、計算式では 「200」 として扱われるとき、他にも
- 左寄せだから文字列だと思っていたのに、数式に入れると計算される
- CSV を読み込んだら、勝手に数値に変換されてしまった
これは Excel の“クセ”とも言える動作で、初心者だけでなく中級者でもつまずきやすいポイントです。
この記事では、Excel がなぜ「文字列の数字」を数値として扱ってしまうのか、その仕組みと対処法を分かりやすく解説します。
左寄せ=文字列、右寄せ=数値は“見た目のルール”にすぎない
Excel では、入力した値を自動判定して次のように配置します。
- 数値 → 右寄せ
- 文字列 → 左寄せ

しかし、これはあくまで 見た目の初期設定 であり、 内部的なデータ型(文字列か数値か)とは一致しないことがあります。
たとえば、CSV を読み込んだときや、数式で参照したときなど、 Excel が勝手に「これは数値だろう」と判断してしまうことがあります。

Excel は内部で別の判断をしていることがあります。
アポストロフィ(’)を付けても“絶対に文字列”とは限らない?
セルに '200 と入力すると、Excel は確かに文字列として保存します。 しかし、数式の中では話が変わります。
Excel の計算式は、次のように動作します。
'200→ 数値に変換できる → 計算に使われる'ABC→ 数値に変換できない → エラーになる
つまり、「文字列かどうか」よりも「数値に変換できるかどうか」が優先される のです。

'200 は文字列ですが、Excel は計算式の中で「数値に変換できる」と判断すると自動で数値化します。
「緑の三角(エラーチェックオプション)」
アポストロフィで入力すると、セルの左上に緑色の小さな三角が出ることがあります。
「緑の三角が出ても大丈夫!」
「これはExcelが『数字なのに文字列になってるけど大丈夫?』と親切に(おせっかいに)教えてくれているだけなので、無視してOKです」。
Excel の“暗黙の型変換”とは?
Excel は計算式の中で、文字列でも数値に変換できると判断した場合、 自動的に数値に変換して計算します。
例: セル B3 に '200、C3 に 100 があるとします。

このとき Excel は、
'200→ 数値 200 に変換100→ 数値 100
として計算し、結果は 300 になります。
非常に強力おせっかいな自動変換(暗黙の型変換)
「強制的に」数式の中で文字列にできるのが、「& ""」(アンド、ダブルクォーテーション2つ)を付けるだけで、Excelはその数字を「文字列」として扱ってくれるようになります。
しかし、「& ""」 を付けても計算(数値として認識)されてしまう」という現象は、Excelが持つ「おせっかいな自動変換(暗黙の型変換)」が非常に強力であるために起こります。
数式の例: =VLOOKUP(A2 & "" , 範囲 , 列番号 , 0)
Excelには「計算できそうな文字列は、計算の時だけ数値として扱う」という特殊な性質があります。
- 現象:
=A1 & ""の結果は確かに「文字列」になっています。 - 理由: しかし、そのセルを他のセルで
+や*などの算術演算に使うと、Excelが気を利かせて「これは数字の形をした文字だけど、足し算したいなら数値に戻してあげるね」と自動で変換して計算を実行してしまうのです。
これを 「暗黙の型変換」 と呼びます。VLOOKUP関数の場合は型に厳しいですが、四則演算(+ー×÷)の場合はこの「おせっかい」が発動します。
本当に「文字列」になっているか確認する関数
「見た目」や「右寄り・左寄り」だけでは不安な時に、Excelがそのデータをどう認識しているか正体を見破る関数を紹介しましょう。
TYPE(タイプ)関数
セルに =TYPE(対象のセル) と入力してみてください。
- 「1」 が返ってきたら… 数値 です。
- 「2」 が返ってきたら… 文字列 です。
& "" を付けた数式のセルに対して TYPE 関数を使うと「2」が返るはずです。それでも計算に使えてしまうのがExcelの不思議な(厄介な)ところです。
文字列として扱わせたいときの解決・対処法
✔方法1:文字列として連結する
=B3 & C3
→ 200100(文字列)

✔方法2:方法2:数値変換を防ぐ
=IF(ISNUMBER(B3), “数値”, “文字列”)

✔方法3:書式設定を「文字列」にしてから入力する
後から書式を変えても既存の数値は変わらないので注意。


Excelを「自動」から「手動」で操る
「数値として入力した後に『文字列』に変えても、Excelの中では数値のままです。一度『F2キー』を押してEnterを押すか、最初から設定してから入力しましょう」
✔方法4:【決定版】さらに強力TEXT 関数で文字列化する
=TEXT(B3, “0”)

この数式は「値を、数値書式のない文字列の数字として表示せよ」という命令です。& "" よりも明示的に型を固定できるため、複雑な表ではこちらの方がエラーが少なくなります。
よくある誤解
❌ 左寄せだから文字列 → 間違い
❌ アポストロフィを付ければ絶対に文字列 → 計算式では数値扱いされる
❌ CSV を読み込めば文字列のまま → Excel が勝手に数値化することがある
Excel は便利な反面、こうした“自動変換”が原因で思わぬトラブルが起き、気を利かせて計算してくれますがその優しさが仇(あだ)となります。
まとめ
- Excel は「数字に見える文字列」を自動で数値に変換する
'200は内部的には文字列だが、計算式では数値扱いされる- 左寄せ・右寄せはあくまで見た目の目安
- 文字列として扱いたい場合は、数式側でも工夫が必要



運営者プロフィール
パソコンインストラクターの経験を生かして、シニアの方や初心者の方に、WordやExcelの「できた!」を届けるために活動しています。