エクセルで最新の日付のデータを抽出する方法|VLOOKUP・XLOOKUP・MAXIFS

結論(先に答え)

最新の日付そのものは =MAX(A2:A10)。最新日付の行のデータを取り出すには =XLOOKUP(MAX(A2:A10), A2:A10, B2:B10)(VLOOKUPなら =VLOOKUP(MAX(A2:A10), A2:B10, 2, FALSE))。「商品ごとの最新」など条件付きは MAXIFS と組み合わせます。

入力履歴や更新記録のように日付が積み重なっていく表から、「一番新しい日付のデータだけ」を取り出したい——実務で非常によくある処理ですが、VLOOKUP単体ではうまくいかず悩みがちです。この記事では、MAX関数で最新日付を求めて検索関数に渡すという基本パターンから、条件付きの最新データ抽出まで解説します。

目次

今回のゴール:入荷履歴から最新の入荷数を取り出す

以下のサンプルデータをExcelシートにコピーしてください。A列の日付は昇順とは限らない前提です。

練習用のExcelファイルはこちらからダウンロードできます:
Excel-latest-date-lookup-1.xlsx(ダウンロード)

ABC
1日付商品入荷数
24/1りんご50
34/3みかん30
44/5りんご80
54/2バナナ60
64/6みかん40
エクセルで最新の日付のデータを抽出する図解:MAXで最新日付を求めXLOOKUPで該当行の値を取り出す

手順1:最新の日付を求める(MAX関数)

日付はExcel内部では数値(シリアル値)なので、最大値=最新の日付です。

=MAX(A2:A6) → 4/6

手順2:最新日付の行のデータを取り出す

XLOOKUPを使う場合(推奨)

=XLOOKUP(MAX(A2:A6), A2:A6, C2:C6) → 40(4/6の入荷数)

MAXが返した「最新の日付」を検索値にして、同じ行の入荷数を返しています。商品名を取りたければ戻り範囲を B2:B6 に変えるだけです。

VLOOKUPを使う場合

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

VLOOKUPでは日付列(検索値を探す列)が範囲の左端にある必要があります。日付が左端にない表では、XLOOKUPを使うのが簡単です。

応用:「商品ごとの最新」を取り出す(MAXIFS)

「りんごの最新入荷数」のように条件付きの最新日付は、MAXIFS関数で求めます。

=MAXIFS(A2:A6, B2:B6, "りんご") → 4/5(りんごの最新日付)

この結果を検索値にして、複数条件のXLOOKUPで該当行を特定します。

=XLOOKUP(MAXIFS(A2:A6, B2:B6, "りんご") & "りんご", A2:A6 & B2:B6, C2:C6) → 80

「日付&商品名」を連結して検索することで、同じ日付に複数の商品がある場合でも正しい行を取り出せます。

注意点:同じ最新日付が複数行ある場合

最新の日付が2行以上あるとき、上の数式は最初に見つかった行を返します。「最後に入力された行」を取りたい場合は、XLOOKUPの検索モード(第6引数)を -1(末尾から検索)にします。

=XLOOKUP(MAX(A2:A6), A2:A6, C2:C6, , 0, -1)

まとめ

最新日付のデータ抽出は「MAX(またはMAXIFS)で日付を求めて、XLOOKUP/VLOOKUPに渡す」の2段構えが基本です。条件付きならMAXIFS+複数条件XLOOKUPの組み合わせを覚えておくと、履歴管理の表で幅広く応用できます。

こんな場合はこちら:XLOOKUPの複数条件検索の基本XLOOKUPで「以上・以下」の範囲検索をする日付を和暦に変換する

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

この記事を書いた人

コメント

コメントする

目次