※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。
2025年6月24日【ID:0】
【Excel】VLOOKUPで「見つかった一番下の値」を抽出する方法
表からデータを検索して抽出する際に便利な関数に「VLOOKUP関数」があります。
しかし、この関数では、重複する値が存在する場合に、「上から順に最初に見つかった値」しか取得できません。

そこで今回は、VLOOKUP関数で「見つかった一番下の値」を抽出する方法について解説していきます。
1. 行番号を取得する補助列を追加
まずは、検索対象の表の左側に新しい列を追加し、以下の数式を入力します。
=IF(B3=$B$16,ROW(),"")

この数式は、「表の顧客IDが検索値(顧客ID)と一致する場合、その行の行番号を表示する」という内容です。
検索値(顧客ID)の参照は「$」を加えて絶対参照にしています。
この数式を、表の最後の行までコピーします。

これで該当する行のみ行番号を表示することができました。
2. 最大の行番号を使ってVLOOKUPで抽出
次に、検索結果を抽出するセルに、以下の数式を入力します。
=VLOOKUP(MAX(A3:A12),A3:D12,3,FALSE)

この数式は、「先ほど抽出した行番号の最大値の行にある3列目(購入日)を抽出する」という内容です。
これで一番下にある該当データを抽出することができます。
Excel2021以降なら「XLOOKUP」が便利
Excel2021以降の環境の場合、XLOOKUP関数が使えます。
XLOOKUP関数は、VLOOKUP関数をさらに快適にした関数で、以下の数式1つで「見つかった一番下の値」を抽出することができます。
=XLOOKUP(B16,B3:B12,C3:C12,"",0,-1)

XLOOKUP関数についての詳しい解説は、以下の記事にて解説しています。
>VLOOKUP / INDEX・MATCH / XLOOKUP
まとめ
VLOOKUP関数単体では実現できないことでも、複数の関数を組み合わせることで解決できるケースは多くあります。
今回解説した「見つかった一番下の値を抽出する」方法もその一つです。
このテクニックを覚えておけば、実務でのデータ処理や分析の幅がぐっと広がります。
ぜひ、日々のExcel作業に取り入れてみてください。
※IT予備メンバーに加入して連携すると、
一部の広告が非表示になります。