Excelで最新日付のデータを抽出|MAX・MAXIFSとXLOOKUP

最新の日付の データを取り出す。無料Excelサンプル付き。

日付順に並んでいない表から最新の行を探すには、まずMAXで最大の日付を求め、その日付をXLOOKUPで検索します。商品ごとに最新の行が欲しい場合はMAXIFSで日付を絞り込み、商品と日付の両方を条件にします。

無料Excelサンプルで一緒に試す

入荷履歴の練習データです。日付・商品・入荷数の列を確認し、本文の基本式を空いているセルに入力して試せます。

無料サンプルファイルをダウンロード(.xlsx)

Microsoft 365向け。XLOOKUP・FILTER・UNIQUEの例はExcel 2024・2021でも利用できます。本文の対応版もご確認ください。

目次

最新日付と同じ行の値を返す

A2:A6が日付、B2:B6が商品、C2:C6が入荷数です。説明図では年を2026年にそろえています。

=MAX(A2:A6)
=XLOOKUP(MAX(A2:A6),A2:A6,C2:C6,"該当なし",0)

上の式は4月6日、下の式はその日の入荷数40を返します。MAXの結果が数値で表示されたら、結果セルを日付形式に変更します。元データを日付順に並べ替える必要はありません。

商品ごとの最新日付を求める

E2にりんごを入力し、F2でその商品の最新日付を計算します。

=IF(COUNTIF(B2:B6,E2)=0,"",MAXIFS(A2:A6,B2:B6,E2))

条件に合う商品がない場合、MAXIFSだけでは0が返るため、先に件数を確認しています。この例のF2は4月5日です。MAXIFSはExcel 2019以降やMicrosoft 365で利用できます。

商品と最新日付の2条件で行を特定する

G2などの空きセルに次の式を入れます。

=IF(F2="","該当なし",XLOOKUP(1,(A2:A6=F2)*(B2:B6=E2),C2:C6,"該当なし",0,-1))

結果は80です。日付だけを検索すると、同日に入荷した別商品の数量を返す可能性があります。日付と商品の両方を比較すれば、その取り違えを防げます。最後の-1は同じ商品・同じ日時が複数あるときに下の行を優先する指定です。

最新日付の全行が欲しい場合

=FILTER(A2:C6,A2:A6=MAX(A2:A6),"該当なし")

最新日に複数の商品があるとき、XLOOKUPは通常1件、FILTERは該当する行をすべて返します。合計が欲しいならSUMIFSで数量を合計するなど、欲しい結果を先に決めます。

VLOOKUPで検索する場合

=VLOOKUP(MAX(A2:A6),A2:C6,3,FALSE)

検索対象の日付列を範囲の左端に置き、最後をFALSEで完全一致にします。この例は日付と商品の条件を組み合わせていないため、表全体の最新日付に対する先頭の1件です。商品別の最新とは区別してください。

日付が文字列・時刻付きの場合

MAXは参照範囲の文字列日付を数値の日付として比較しません。ISNUMBERで日付が数値かを確認します。また時刻は小数部分なので、最新の「日時」と最新の「日」は異なります。日単位にそろえる必要があるときだけ補助列でINTを使います。

下から検索するだけでよい履歴表は最後に一致する行を検索する方法、日付が一致しない問題は日付検索のエラー対策をご覧ください。

無料Excelサンプルで復習する

入荷履歴の練習データです。日付・商品・入荷数の列を確認し、本文の基本式を空いているセルに入力して試せます。

無料サンプルファイルをダウンロード(.xlsx)

Microsoft 365向け。XLOOKUP・FILTER・UNIQUEの例はExcel 2024・2021でも利用できます。本文の対応版もご確認ください。

次に読むと理解が深まる記事

参考:Microsoft公式ドキュメント MAX / MAXIFS / XLOOKUP

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

目次