エクセルのワークシートに日付を入力して表を作成することってありますよね。
例えば、誕生日リストや入会日リストなど。
誕生日リストで、一番若い人は誰だろうと探す場合、どうしますか?
リスト数によっては、日付を見て探すのは一苦労ですよね。
こんなときに活躍するのがMAX関数です。
そこで本記事では、「MAX関数やMIN関数を使って日付を便利に扱う方法」について解説します。
1.エクセルで扱う日付の正体
こんにちは。エクセルマン・ブリーダーのしもむぎ(@re_znd13)です。
まずはエクセルが日付をどう扱っているか、その正体を知っておきましょう。
ズバリ、エクセルは日付を数値として扱っています。
1900年1月1日を1として、1900年1月2日は2、1900年1月3日は3・・・というように数値と日付が紐付けられているんですね。
これをシリアル値といいます。
例えば、この記事を書いている2020年7月9日は44021というシリアル値が、その正体です。
過去であればあるほどシリアル値は小さく、未来であればあるほどシリアル値は大きいということですね。
2.ワークシート上で使えるMAX関数、MIN関数
日付の正体は数値(シリアル値)ということがわかりました。
そうすると、ここからの話はわかりやすいのではないでしょうか。
いくつかのセルの中に日付が入っているとして、その中から最新の日付を選ぶには、シリアル値が最大のものを選べばよい、ということです。
逆に最古の日付を選ぶには、シリアル値が最小のものを選べばよい、ということですね。
こんなときに使えるのが、MAX関数やMIN関数です。
この関数はワークシート上で使える関数です。
A1セルからA6セルまで日付が入っているとして、これらの関数の使い方を見ていきましょう。
MAX関数とMIN関数の使い方(構文)は以下です。
範囲を指定すると、その中から最大値や最小値を探すことができます。
MAX(A1:A6)
MIN(A1:A6)
実行結果を見てみます。
C1セルにMAX関数、C2セルにMIN関数を入力しました。
C1セルに最新の日付、C2セルに最古の日付が返されているのがわかりますね。
3.VBAでもMAX関数、MIN関数を使いたい!
エクセルのマクロでこのMAX関数、MIN関数を使いたい!というケースもあると思います。
この章ではVBAコードの例を見ていきますね。
以下のVBAコードはMAX関数を使って最新日を取得するケースです。
実行結果は画像の通り。
MAX関数はワークシート関数なので、記述に少し工夫が必要です。
Sub 最新日()
Dim latestDATE As Date
latestDATE = Application.WorksheetFunction.Max(Range("A1:A6"))
MsgBox latestDATE
End Sub
次にMIN関数で最古日を取得する例です。
MAX関数と同様に記述していきます。
結果は画像の通り。
Sub 最古日()
Dim oldestDATE As Date
oldestDATE = Application.WorksheetFunction.Min(Range("A1:A6"))
MsgBox oldestDATE
End Sub
4.まとめ
本記事では、「MAX関数やMIN関数を使って日付を便利に扱う方法」について解説しましたが、いかがでしたか?
エクセルが日付をシリアル値として扱っていることを知れば、日付の扱いもしやすいのではないでしょうか。
今回はMAX、MIN関数を使いましたが、LARGE関数やSMALL関数も使えるので、うまく使っていきましょうね。