12/10/2021

Excel。ピリオドで区切られた日付では計算でつかえない!どうしたらいいの?【DATE】

Excel。ピリオドで区切られた日付では計算でつかえない!どうしたらいいの?

<DATE・LEFT・MID・RIGHT関数>

見た目、日付とわかるからという感じで、何も考えないで入力している場合、Excelの機能を使えないということが、ちょこちょこあります。


例えば、次のような日付計算。


B4には、B2-B3。

C4には、C3-C3という数式が設定してあります。


B4には、#VALUE!というエラーが表示されていますが、C4は、普通に減算された結果が算出しています。


何が違うのかというと、B列の日付は、「.(ピリオド)」で区切られた日付になっています。


「.(ピリオド)」で区切られいる日付は、見た目が日付なだけで、Excelとしては、日付と認識していません。

「文字」として認識されているので、#VALUE!というエラーが表示されてしまっているのです。


最初から「/(スラッシュ)」で区切っていれば、問題はなかったのです。


今回のように、2件程度のデータならば、入力し直すことも容易ですが、件数が多い場合は、絶望的な作業となってしまいます。


そこで、「.(ピリオド)」を「/(スラッシュ)」に変換する方法を紹介していきます。

とても単純ですが、現場レベルとしては重要な作業です。


C2には、次の数式を設定してあります。

=DATE(LEFT(B2,4),MID(B2,6,2),RIGHT(B2,2))


年月日を別々のセルに算出するならば、YEAR関数やMONTH関数などをつかって、抽出するわけです。

ところが、「.(ピリオド)」で区切ってしまっていると文字型になってしまっているので、YEAR関数などの日付系の関数を使うことができません。


文字型のデータならば、LEFT関数・MID関数・RIGHT関数をつかうことで、対応することができます。


そして、DATE関数をつかうことで、日付にすることができます。

DATE関数の最初の引数は、「年」の設定です。

左から4文字が年ですから、

LEFT(B2,4)

と設定することで、「年」を抽出することができます。


次の引数ですが、左から6文字目からの2文字を抽出する必要があります。

文字列の途中の文字を抽出したいので、MID関数を使います。

MID(B2,6,2)

と設定することで、「月」を抽出することができます。


最後の引数ですが、MID関数を使うよりも、右から数えた方が簡単なので、RIGHT関数を使います。

RIGHT(B2,2)

と設定することで、「日」を抽出することができます。


あとは、オートフィルで数式をコピーしています。


ただし、日付にはなるのですが、「0(ゼロ付)」の日付になっていません。


そのため、表示形式のユーザー定義をつかって、「0(ゼロ付)」の日付にしてあげるといいですね。


なお、TEXT関数をつかってしまうと、「0(ゼロ付)」の日付にすることはできるのですが、日付文字型になってしまうので、注意が必要です。


入力するという作業では、今回のように、もったいないというか、あとで、面倒な作業が発生することもありますので、ちょっと気を遣う必要がありますね。