人気ブログランキング | 話題のタグを見る

エクセルで日付けをコピーすると?

日付をコピーすると、変な数字になるので何とかして欲しい、うまく文字列に変換できないかと言われました。

以前に、エクセルで給与計算の仕方を書きましたが、1900年1月1日を1として毎日連番をとっていく(ウインドウズの)エクセルの日付管理方法では、例えば「4/25」と入力すると、エクセルが勝手に「これは日付を入力しようとしている」と判断して、入力日の日付連番をセルに書き込み、同時にセルの書式の表示方法を日付に変えてしまいます。

つまり、本人は「4/25」と入力したつもりでも、入力された値は「38832」という数値なのです。セルの表示書式が日付に変わっているだけです。

これをコピーして、値の貼付をすれば、貼り付け先では当然「38832」と表示されてしまいます。どうやっても「4/25」という文字列では表示されません。

そこで、仮にa1のセルに「4/25」と入力した場合、例えばb1のセルに、
=YEAR(a1)&"/"&MONTH(a1)&"/"&DAY(a1)
と書きます。

a1のセルの値は「38832」ですが、YEAR()の関数を使って日付連番から年を、MONTH()の関数を使って月を、DAY()の関数を使って日を取り出して、あとは"/"を入れながら & でつなげば、2006/4/25 と文字列として表示してくれます。これなら、これをコピーして、別の場所に値の貼付をすると、無事に文字列として、2006/4/25 が貼り付けられます。

時間も日付も、ちょっとした工夫が必要です。