取引先からもらった型番の一覧をExcelに貼り付けたら、「1-1」が「1月1日」に変わっていました。
気づいたのは並べ替えをかけたあとです。型番の列だけが日付の順に並んでいて、表としての見た目はきれいなのに中身は別物でした。
この化け方をするのは、ハイフンやスラッシュを挟んだ数字です。「1-1」「3-5」のような型番や部屋番号、「1/2」「3/4」のような分数、それに先頭が0で始まる番号。どれも事務の現場でふつうに使う書き方なのに、Excelは日付の表記だと判断します。
1件だけなら目で見て分かりますが、100行を超える表に十数個が散っていると気づきません。
日付になるだけでもありません。先頭に0が付く「0123」は「123」になり、桁の多い数字は「1.23457E+12」のような指数表示に変わります。症状は違っても、入力された文字を見てExcelのほうが型を決めている、という原因は同じです。
しかも、日付になってしまったセルは表示形式を[文字列]に戻しても元の「1-1」にはなりません。出てくるのは「46023」という、見覚えのない数字です。
この記事では、Excelが数字を日付に変えてしまう理由と、入力前に止める3つの方法、Microsoft 365とExcel 2024で使える「自動データ変換」の設定、CSVを開くときの手順をまとめます。
私は長いこと、セルを先に文字列にするか、頭にアポストロフィを付けるかの2択しか知りませんでした。Excelの設定そのものに項目が増えていたと知ったのは、だいぶあとです。
原因は、セルの表示形式が[標準]のままだから
Excelのセルは、何も触らなければ表示形式が[標準]です。
[標準]のセルは、入力された文字を見てExcelのほうが型を決めます。ハイフンやスラッシュで区切られた数字の並びは日付の書き方そのものなので、「1-1」は1月1日、「3/5」は3月5日として読まれます。年は入力した年が補われるので、2026年に打てば2026年1月1日です。
この挙動は不具合ではなく、仕様として公式に説明されています。Microsoftのサポートページにも、数値の前にスペースやアポストロフィを入れる、分数の前に「0」と半角スペースを入れる、といった回避策が並んでいます。
裏を返せば、セルが[標準]でなければこの変換は起きません。
入力する前なら、止め方は3つある
いちばん確実なのは、入力する前にセルを文字列にしておく方法です。
- 型番や番号を入れたい範囲を選ぶ
- Ctrl+1 を押して[セルの書式設定]を開く
- [表示形式]の一覧から[文字列]を選ぶ
- [OK]で閉じてから入力する
2つ目は、入力のたびに頭へ半角のアポストロフィを付ける方法です。「’1-1」と打つとセルには「1-1」と表示され、アポストロフィ自体は残りません。1個か2個を直すだけならこちらが速いです。
3つ目は分数のとき。「1/2」をそのまま入れると1月2日になりますが、「0」と半角スペースを先に打って「0 1/2」とすると分数として入ります。先頭の0は確定した時点で消えます。
VLOOKUPやMATCHで照合に使う列なら、スペースではなくアポストロフィのほうが安全だと公式にも注記があります。関数がスペースを見落とすことがあるからです。
日付になったセルは、書式を戻しても元に戻らない
すでに日付に変わったセルを選んで表示形式を[文字列]にすると、出てくるのは「46023」です。
Excelの日付は、1900年1月1日を1として数えた連番で記録されています。2026年1月1日はその46023番目。画面に見えていた「1月1日」は表示の皮で、中身はずっとこの数字でした。
だから書式を戻しても、入力した「1-1」という文字は出てきません。文字のほうは、確定した時点で捨てられているからです。
残る手は、表示形式を文字列にしてから打ち直すか、元のデータから貼り直すかの2つだけです。
私の型番の一覧は、その場で打ち直しました。120行のうち18行だったので手で済みましたが、これが1,000行だったら素直に元ファイルを送り直してもらっていたと思います。
Microsoft 365とExcel 2024は、設定で変換そのものを切れる
この変換、長いあいだ「オフにする設定はありません」と案内されていました。いまのExcelには、ちゃんと項目があります!
- [ファイル]タブから[オプション]を開く
- 左の一覧で[データ]を選ぶ
- [自動データ変換]の欄を見る
- 「連続する文字と数字の『日付に似た』組み合わせを日付に変換する」のチェックを外す
- [OK]で閉じる
同じ欄には4つの項目が並んでいます。
- 先頭のゼロを削除して数値に変換する
- 長い数値の最初の15桁を保持し、必要に応じて指数形式で表示します
- 文字「E」を囲む数字を指数形式の数値に変換する
- 連続する文字と数字の「日付に似た」組み合わせを日付に変換する
先頭の0が消える症状も、桁の多い数字が「1.23457E+12」になる症状も、ここで止まります。公式ページが対象として挙げているのは、.csvや.txtを開いたとき、データの入力、外部からのコピーと貼り付け、検索と置換、区切り位置ウィザードの5つです。
ただし、変換を切った数値は文字列として保存されるので、そのままでは計算に使えないことがあります。
それと、これはブックではなくExcel側の設定です。自分のパソコンで切っても、同じファイルを開いた同僚の画面では今までどおり変換されます。共有の台帳で毎月困っているなら、設定よりも列の表示形式を文字列にして保存するほうが効きます。
[データ]に欄が無いときは、Excelのバージョンを疑う
この設定が使えるのは、Excel for Microsoft 365とExcel 2024、それぞれのMac版です。
一般提供が始まったのは、2023年9月末に出たバージョン2309から。会社のパソコンがExcel 2019や2021のままなら、[オプション]の[データ]を開いても自動データ変換の欄は出てきません。
無い画面を探し回る前に、[ファイル]→[アカウント]で製品情報を見るほうが早いです。
私は、買い切り版を使っている人がこの設定のためだけにMicrosoft 365へ乗り換える必要は無いと思っています。入力前に文字列を指定するやり方で結果は同じですし、そちらは設定がファイル側に残る分むしろ堅いので。
参考:窓の杜
CSVはダブルクリックで開かない
型番や電話番号の入ったCSVを、エクスプローラーからダブルクリックで開いていませんか。
その開き方だと、Excelは全部の列を自分の判断で型付けします。日付になった列も、0が消えた列も、開いた時点で終わっています。
- 先にExcelを起動して、空白のブックを開く
- [データ]タブの[テキストまたはCSVから]を選ぶ
- ファイルを指定して、プレビューの下にある[データの変換]を押す
- Power Queryエディターで型番の列を選び、[データ型]を[テキスト]にする
- [閉じて読み込む]で取り込む
手間に見えますが、毎回同じ形のCSVを扱うなら2回目からは更新ボタンひとつで済みます。
なお、Power Queryで取り込んだデータは、さきほどの自動データ変換の設定の影響を受けません。公式にもそう書かれていて、列ごとにデータ型を指定するのが前提になっています。設定を切ったはずなのにCSVだけ日付になる、というときはここを疑ってください。
文字列にしたあとに出てくる、小さな副作用
セルを文字列にすると、数字が数字として扱われなくなります。
セルの左上に出る緑色の三角がそのサインです。「数値が文字列として保存されています」というエラーチェックで、見た目が気になるなら表示をオフにできますが、私は残しておく派です。文字列にしたことを自分で忘れるので。
合計が合わないときも、まずここを見ます。SUMは文字列のセルを無視するので、画面には数字が並んでいるのに0が返る、ということが起きます。
もう1つ。文字列にしたセルに数式を入れると、計算されずに「=A1+B1」と式のまま表示されます。番号を入れる列と計算する列は分けておくのが無難です。
まとめ
「1-1」が「1月1日」になるのは、セルの表示形式が[標準]のままで、入力された文字からExcelが型を決めているからです。
入力する前なら止められます。範囲を選んでCtrl+1から[文字列]にするか、頭にアポストロフィを付けるか、分数なら「0」と半角スペースを先に打つ。この3つで、型番も部屋番号も分数もそのまま残ります。
すでに日付になったセルは、表示形式を戻しても「46023」という連番が出てくるだけで、入力した文字は戻りません。打ち直すか、元のデータから貼り直すかの2択です。
Excel for Microsoft 365とExcel 2024なら、[ファイル]→[オプション]→[データ]の[自動データ変換]で、日付への変換も先頭の0の削除も個別に切れます。2023年9月のバージョン2309から入った項目なので、2019や2021では見つかりません。
CSVはダブルクリックで開かず、[データ]タブの[テキストまたはCSVから]で列の型をテキストに指定してから取り込みます。Power Queryは自動データ変換の設定が届かない場所なので、ここだけは別に手当てが要ります。
3つの手当ては効く場面が違います。これから入力するなら文字列の指定、毎日CSVを取り込むならPower Query、自分のパソコンで二度と踏みたくないならオプションの設定です。
私が覚えておいてよかったと思っているのは、46023という数字の意味のほうでした。あれを見た瞬間に「元の文字はもう無い」と判断できるので、書式をいじって戻そうとして30分溶かすことがなくなりました。