Excel関数で最後の日程を求める方法

「Excelで最後の日付を求めたい」という質問がありました。「最後の日付」というと2種類の意味があり、どちらも確かに最後の日付を指すのです。

ひとつは、「その月やその年の最後の日付」のことを指しています。

もうひとつは、「売り上げた日付の中で最後に売り上げた日付」を指しているケースです。

どちらかによって、対処するケースが変わってきます。どちらを指しているのか、一度整理する必要がありますね。

今回はどちらのケースの質問にもお答えしていきたいと思います。

その月の最後の日付を求める

2022年10月20日に対する月末を求めるには、今月の場合の経過月数は0なので、次のような計算式になります。

=EOMONTH(“2022/10/20”,0)

その月の最後の日付、つまり「末日」を求めるのは「EOMONTH関数」です。End Of Month関数の略なのかと思われます。

EOMONTH関数の使い方は次のとおりです。

=EOMONTH(調べたい日付,経過月数)

今月の月初の日付を求める

2022年10月20日に対する月初の日を求めるには、次の計算式になります。

=EOMONTH(“2022/10/20”,-1)+1

応用して今月の月初である1日を求めるには、先月の月末の次の日と考えます。先月なので経過月数は-1で求め、その次の日なので最終的に+1します。

その年の最後の日付を求める

2022年10月20日に対する月末を求めるには、次のような計算式になります。

=EOMONTH(“2022/10/20”,12-MONTH(“2022/10/20”))

その年の最後の日付、つまり「おおみそか」を求めるのも「EOMONTH関数」です。EOYEAR関数はありません。少し工夫をして使います。

経過月数は、調べたい日付が12ヶ月のうち何ヶ月が経過されているかを求める必要があります。その月を表す数値はMONTH関数で求めるので12からMONTH関数の答えを引きます。

それをEOMONTH関数の経過月数にセットした計算式を作成します。

売り上げた日付の中で最後に売り上げた日付を求める

セルA2からA51までに売上日付が入力されていて、その中の最後の日付を求める数式は次のとおりです。

=MAX(A2:A51)

こちらは「MAX関数」を使います。

MAX関数の使い方は次のとおりです。

=MAX(日付の入力範囲)

さて、最大値を求めるMAX関数で最後の日付?と思うかもしれません。

Excelの日付を求める仕組みを理解するとわかりやすくなります。

日付シリアル値とは

Excelの日付は実はただの数字なのです。日付は1900年の1月1日から数えた日数で管理されているのです。1900年1月1日は1です。1900年1月31日は31です。逆に32という数字を日付の形式にすれば1900年2月1日と表示されるのです。だからTODAY関数に+1すれは明日の日付を求めることができるのです。

2022年10月20日は44854です。このようにただの数字なので足し算、引き算ができるほか、MAX関数で最終日、MIN関数で開始日を求めることができます。

売り上げた日付の中で最後に売り上げた日付を求める数式

セルA2からA51までに売上日付が入力されていて、セルB2からB51まで販売先が入力されていて、A社に売り上げた最後の日付を求める数式は次のとおりです。

=MAXIFS(A2:A51,B2:B51,”A社”)

この場合では販売先を条件とした最大値を求める「MAXIFS」関数を使います。

販売先ごとの最終日付を求めるMAXIFS関数の使い方は次のとおりです。

=MAXIFS(日付の入力範囲,販売先の入力範囲,抜き出す販売先)

上記のMAXIFS関数は販売先というひとつの条件で抜き出していますが、MAXIFS関数では複数の条件で抜き出すことができます。

=MAXIFS(最大値を求める範囲,ひとつめの条件範囲,ひとつめの条件範囲,ふたつめの条件範囲,ふたつめの条件・・・)

まとめ

今回は、「Excelで最後の日付を求めたい」という課題に対して回答をしました。

一見すると「EOMONTH関数」のことだろうなと判断し回答してしまうのですが、Excelの機能を幅広く見渡し、その質問をもう一度考えると、その回答ではないものを求めていることがわかるときがあります。人にExcelを教える時は、このようなことを先読みして回答を考えることも重要なのです。

また、質問をするときに「月末を求めたい」「入力されている中で最後の日付を知りたい」といった具体的な質問をすれば、最短で答えに辿り着けます。

質問者、回答者それぞれが答えにスマートに辿り着くためには、お互いのコミュニケーションが必要になります。

コメント

タイトルとURLをコピーしました