この記事ではエクセルで数字が日付になる(勝手に変わる)・日付が数値(シリアル値)になる原因と対策【自動で年月日など】を解説していきます。
エクセルでは記号を含む数字を入れたりすると、勝手に日付に変換されたり、逆に日付を入れたいのに数値(シリアル値)に変換されてしまうケースが多いと思います。
それではサンプルを用いて、その原因と対策を見ていきましょう。
エクセルで数字が日付になる(変わる)原因と対策1
エクセルで、”1/2”や”1-2”と入力すると「1月2日」と変換されて表示されるケースが多いのではないでしょうか。
上図のサンプルのように”1/2”と分数の形式で入力したのにリターンキーを押すと、
1月2日に変換されてしまいました。書式設定を見ると、入力時は「標準」だったのにリターンキーを押した後に「ユーザー定義」に自動で変更されました。
エクセルでは入力されたデータから、自動で書式を判定する機能があります。特に日付を入力しやすくなるためにプログラムされているようです。
ではこれを回避する対策について見ていきましょう。
スペース追加
シングルコーテーション追加
リターンキーを入力すると、
“0”は消え、セルは”1/2”と表示されていますが実際の値は”0.5”という結果になっていますね。
エクセルで数字が日付になる(変わる)原因と対策2
入力する前にセル毎にシングルクォテーション(‘)をうつのが面倒な場合は、あらかじめ該当セル全体を書式設定で変換しないようにしておくことができます。
該当のセル群を選択して、右クリックで「セルの書式設定」を選択し、分類を「文字列」に変更します。
事前に書式設定で「文字列」にしておくことで、入力した値がそのまま表示されます。
先に書式設定で「文字列」としてしまった方が良いですね。
エクセルで日付が数値(シリアル値)になる(変わる)原因と対策
次はエクセルで「11月21日」と入力しているのに「45251」のように数値で表示される場合があると思います。
この原因はエクセルでは日付データを「シリアル値」という数字で管理しています。シリアル値とは、「1980年1月1日」を「1」としてそこからの経過を数値で示しているものになります。
このようにシリアルに変換されるケースは、「セルの書式設定」が“数値”となっていることが原因です。
セルに入力した値をそのまま表示したい場合にはセルの書式設定を「文字列」とすることで入力のまま表示することができます。
入力時に文字列で入力した場合には、シングルクォテーション(‘)を入れてから入力することで文字列とすることができます。
エクセルで日付が数値(シリアル値)になる(変わる)原因と対策2
エクセルで日付が数値(シリアル値)に変わらない対策として、セルの書式設定で文字列に固定する、または入力時に文字列で入力する方法を解説しました。
もう一つの対策として、関数(TODAY)を使って日付で入力する方法を紹介します。
TODAY関数の形式は以下です。
=TODAY()
TODAY関数は現在の日付を求めます、引数はなく”()”のみ入力します。
現在の日付が表示されましたね。
ここで注意してほしいのは、TODAY関数の表示形式は「yyyy/m/d」になります。もし他の形式としたい場合には、TEXT関数を用いて変換するか、セルの書式設定の「ユーザ定義」で指定しましょう。
もし1日前の日付や1日後の日付とする場合には以下のサンプルのように設定します。
TODAY関数を足し算や引き算で設定すると指定した日付を入れることができましたね。
まとめ エクセルで日付が数値(シリアル値)になる原因と対策【自動で勝手に年月日など】
この記事ではエクセルで数字が日付になる(変わる)また日付が数値(シリアル値)になる原因と対策を解説しました。
エクセルでのさまざまな処理を理解し、業務に役立てていきましょう。