stripe room blog

株、新しい技術、将来についての記事がメインのブログです

エクセル セル内の数字を日付にする


エクセル知っていたら便利な式

A列とE列に1000件にわたり、年月日が表示されている。
A列には、例えば平成28年4月20日の意味で、7-280420というような形式で入力されていて、
E列にはシリアル値で、表示は和暦表示でH28.4.20と入っている。

このA列とE列の同じ行が、同じ年月日か確認したい。
数十件だったら目で見て判断すればいいのですが、1000件となると大変です。

方法1
A1に7-280420表示されていたとします。
まず、7-が余計なので、B1セルに「=right(A1,6)」で、A1セルの右から6文字取り出す。
B1には、280420が表示されます。

あとは、右から6文字取り出したB1セルを年月日として認識させるため、C1セルに
=DATE(1988+LEFT(B1,2),MID(B1,3,2),RIGHT(B1,2))
と入力し、日付のシリアル値にします。

式の意味
DATE関数は、年、月、日に分かれているセル内の数字を日付のシリアル値にしてくれます。
=date(年、月、日)で、年に西暦の4ケタの数字、月に2ケタ、日に2ケタを入れると、シリアル値の日付にしてくれます。

年部分は、(1988+left(B1,2)と入力すると、1988+B1セルの左から2ケタの数字(28)を取り出す。
月は、mid関数で、B1セルの3ケタ目から2ケタ文字を取り出す。
日は、right関数で、B1セルの右から2ケタを取り出す。

これで、C1セルを和暦表示にしてあげると、H28.4.20と表示されます。
あとは、D1にexact関数やif関数などでE1セルと同じかどうか表示させる。

方法2
わざわざ、2段階で作業せず一気にいきます。
7-280420→H28.4.20
=DATE(1988+MID(A1,3,2),MID(A1,5,2),MID(A1,7,2))
他は一緒の作業です。
こちらが簡単ですね。