はじめに
別の記事で日付のシリアル値から年月日を返す関数ちゃん、YMD三人娘(YEARちゃん、MONTHちゃん、DAYちゃん)を紹介しましたが、
今回紹介するDATEちゃんは、彼女たちと手を組んでより高度な日付の計算ができる関数ちゃんです。
日付の計算はExcelを使う醍醐味の一つと言えますので、是非使ってみて下さい!
エクセル関数擬人化 DATEちゃん

伝票日付から翌月15日の支払期日を計算する数式を入力したいけど、どうすれば良いんだろう…。
この間教えてもらったYMD三人娘に手伝ってもらえば良いのかな…?

キュウさん、随分と苦戦しているようですね。
何か関数があるかも?という発想は良いですね!
YMD三人娘と相性の良い関数ちゃん、DATEちゃんを紹介しますよ!

DATEちゃん…!? これはいかにも日付が得意そうな名前!!


き、金庫番をやってます、DATEです…。
年、月、日の3つの数字を貰えれば、その日付のシリアル値を返します…。

なんだか年、月、日が金庫の暗証番号っぽいですね!

大事なシリアル値を金庫に保管しています。
3つ数字を教えてもらわないと、お渡しできません。

で、どうすれば支払期日の計算ができますか!?

まぁまぁ、そう焦らずに基本から押さえていきましょう。
第1引数から順に、年、月、日の数字をDATEちゃんに渡すのがポイントです!

こんな感じでお仕事してます…図をご覧下さい。

<構文>
=DATE(年,月,日)

図の一番上の例ですと、第1引数の[年]に2023、第2引数の[月]に3、
第3引数の[日]に14が設定されていますので、2023年3月14日に対応するシリアル値を返しています。

人が日付を見ても、シリアル値は分からないですから、DATEちゃんにお任せですね。
日付のシリアル値は、日付同士の引き算をしたり、日付に足し算をしたりするのに使えるので、とても便利なんですよ!

どんな日付でもシリアル値にできるなんて凄いですね!

どんな日付でも、というわけではないですよ。
シリアル値を扱う関係上、「1900年1月0日」から「9999年12月31日」までの日付のみ扱うことができます。

「1900年1月0日」はシリアル値の数字で言うと「0」ですね。
シリアル値がマイナスになるような引数をDATEちゃんに渡すと、もちろんエラーになります。
「0日」については、後から説明するので、ここでは気にしないで下さい。

ちょっと気になってたので安心しました。
「1900年1月0日」がシリアル値「0」で、DATEちゃんが扱える日付の中で一番古いということですね。

はい、そういうことになります。
もっとも、そのあたりの日付を扱うことは滅多にないのですが…。

1900年だと、日本の元号が明治ですからね…。


図の一番下は1899年12月31日をシリアル値にしようとして、失敗しているんですか?

DATEちゃんは1900年以降の[年]を扱うので、どうも0から1899は『1900年から何年後』を略した数値として受け取るみたいですね。

えっ、それじゃあ第一引数が「123」と「2023」は同じ2023年になりませんか??

次の図のように…おっしゃる通りの結果になります。
私は極力エラーを出したくないんです。
これで0~9999まで、第一引数にエラーなく受け取ることが…できるんですっ…!


(関数ちゃんにとってエラーとは何なのかしら…)
DATEちゃん、加工した日付のシリアル値を返す

気を取り直して!
いよいよ本題、日付のシリアル値から加工した日付のシリアル値を返す方法を見てみましょう!

ここは私達の出番のようですね。
第1引数の[年]は私が引き受けましょう。

第2引数の[月]なら私におまかせ!

今回私は出番なしなの…!?
ちぇ~~っ。

皆さんありがとうございます。
次の図を見てください。


一番上のセルC3に入っている数式の例では、 第1引数はYEARちゃんがセルB3の日付から年を持ってきて設定しているのは分かりますよ!

そのとおりですね。
第2引数[月]からがポイントです!
MONTHちゃんが返すセルB3の日付の[月]に1を足して、セルB3の日付の[月]の翌月にしています!

「5+1」で6月、ということですね!

あとは第3引数の[日]ですね。
ここはキュウさんがやりたいことの条件ですとセルB3の日付の日が何であっても関係なく「15」なので、「15」を設定します。

でも…知っているんですよ!
年の切り替わりの時にちょっと面倒だったりするんですよね??

そ、そんなことありません! 次の図を見て下さい!


ご覧頂ければ判る通り[月]が13月になった場合[年]を繰り上げて翌年の1月のシリアル値をお返しします。
ど、どうですお分かり頂けましたか…?

ちょっと興奮気味なので落ち着きましょう。
日付が0だと前月末、32日は翌月1日など、かなり柔軟に対応してくれて、とても優秀なんですよ!

[月]が0だと前年の12月として扱います。
-1だとそのひと月前である前年11月です。

なんだか凄い…!
ですけど、頭がごちゃごちゃになっちゃいます。

DATEちゃんの引数に0やマイナスを多用すると混乱するかもしれないですね。
ともあれ、これでキュウさんのやりたかったことができるんじゃないですか?

そうですね、対象の日付の[年]はそのまま、[月]に1を足して第3引数の[日]を15にすれば…
できました~!!

お役に立てて何よりです。

今後、色んなシーンで活躍してもらえそうです!

良かったですね!

何なりとおっしゃって下さい。
9999年までなら、お付き合い致しますので!
登場人物紹介

キュウです。
経理初心者、エクセルは学校で少し触ったことがある程度です。
早く知識を身に着けて役に立てるようになりたいです!

シノです。
簿記の資格を持っていて、経理歴数年程度です。
経理業務をやっている内に、エクセルに夢中になってしまいました!
まとめ
Excelでの日付の計算、難しいですよね!
数字の計算だけでも難しいのに、日付をシリアル値という数値として扱いそれを計算するのですから…。
また、ひと月の日数が一定ではないというのも難しい原因でしょうか。
難しい故に様々なテクニックが存在するのも日付計算の特徴だと思います。
今回紹介したDATEちゃんを通じて、シリアル値や日付計算について少しでも親しんで貰えれば幸いです。
コメント