KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel で VLOOKUP を使って最後に一致した値を取得するには、どうすればよいでしょうか?

著者Xiaoyang変更日

Excel の VLOOKUP 関数は、特定の条件に基づいて表形式のデータを検索するための最も広く使われているツールの一つです。ただし、デフォルトでは VLOOKUP はデータセット内で検索条件に一致する最初の値しか取得できません。この動作は、データ内に重複する検索値が含まれており、一致するエントリの最後の出現を抽出したい場合によく制限となります。このような要件は、最新のステータスを追跡したり、顧客ごとの最新の売上を調べたり、時系列リストで最後に記録されたエントリを特定したりするようなシナリオで頻繁に発生します。この課題を克服するために、Excel では LOOKUP、XLOOKUP、INDEX と MATCH などの関数を活用した代替アプローチや、Kutools for Excel のような使いやすいサードパーティ製ソリューションが提供されています。本記事では、各手法の仕組みを解説し、実用的な活用方法や長所・短所を紹介するとともに、VLOOKUP で簡単に最後に一致する値を返すための操作ヒントをお届けします。


LOOKUP 関数で VLOOKUP のように最後に一致する値を返す

VLOOKUP は直接最後に一致する項目を見つけることはできませんが、LOOKUP 関数を使えば巧妙な回避策が可能です。特にデータセットが並べ替えられておらず、ほぼすべてのExcel バージョンで動作する数式ベースの解決策が必要な場合、この LOOKUP アプローチは非常に役立ちます。この数式は、LOOKUP が配列やエラーを処理する仕組みを活用し、最後の出現を素早く特定します。

LOOKUP 関数を使って最後に一致した値を抽出するには、以下の手順に従ってください。

1。 最後に一致した値を表示したいセルを選択し、次の数式を入力してください。

=LOOKUP(2,1/($A$2:$A$12=E2),$C$2:$C$12)

2。Enterを押してください。追加の行にもこの数式を適用する必要がある場合は、フィルハンドルを目的の範囲までドラッグしてください。これにより、複数の検索値に対して簡単に最後に一致する値を検索できます。

LOOKUP関数で最後に一致する値をVLOOKUP
数式内:
  • $A$2:$A$12は検索条件となる列です。
  • E2は、検索する値が含まれるセルです。
  • $C$2:$C$12は返されるカラム(結果)です。
数式の説明:
  • 1/($A$2:$A$12=E2)は、条件が真となるセルの位置に1を、それ以外の位置に#DIV/0!エラーを含む配列を生成します。
  • LOOKUP(2, ...)は、LOOKUP 関数がエラーを無視して存在しない数値 2を検索するという特性を利用します。これにより、LOOKUP は配列内の最後の1と一致し、結果の配列から対応する値を返します。つまり、最後の一致値が得られるのです。

ヒントと注意点:

  • 検索範囲と戻り値の範囲が同じサイズであることを確認し、下方にコピーする際は絶対参照をご使用ください。
  • 検索配列に空白やエラー値が含まれていると、結果に影響が出る可能性があります。事前にデータをクリーンアップするか、必要に応じてIFERROR 関数で囲んで対処してください。
  • #N/Aが表示された場合は、検索値がソース範囲内に実際に存在するかご確認ください。

メリット:すべてのExcel バージョンで動作し、特殊な配列入力も不要です。

制限事項:検索範囲に空白セルやエラー値が含まれていると、結果の信頼性が低下します。カスタムエラーメッセージを表示するには、IFERRORなどのラッピング関数が必要です。


Kutools for Excel で VLOOKUP のように最後に一致する値を返す

Kutools for Excel は、直感的かつ効率的に「最後に一致する値」を返す方法を提供します。数式を使わずグラフィカルに操作したい方、あるいは大規模なデータセットを素早く処理したい方に最適です。下から上に検索ツール(Kutools のスーパー LOOKUP スイート内蔵)は、数式の複雑さを解消し、エラーを自動で処理。さらに、複数のセルに同時に結果を出力できるため、時間の節約と入力ミスの削減を実現します。この機能は、高度なExcel 関数に不慣れな方や、手動での数式編集を最小限に抑えたい方に特にオススメです。

Kutools for Excelは300 以上の高度な機能を提供し、複雑な作業を効率化して、創造性と生産性を高めます。AI 機能と統合されたKutools は、正確にタスクを自動化し、データ管理を簡単にします。Kutools for Excel の詳細情報。。。         無料トライアル。。。

Kutools for Excel をインストール後、以下の手順に従ってください:

1。をクリックします。Kutools > スーパー LOOKUP > 下から上に検索。スクリーンショットを参照してください:

Kutools > スーパールックアップ > 下から上へ検索 をクリック

2。 以下の下から上に検索ダイアログボックスで:

  • 「リスト配置エリアと検索値の範囲」セクションで検索値のセルと出力先のセルを選択します。
  • 「データ範囲」セクションで対応する範囲を指定します。すべての範囲がサイズと順序で一致していることを確認し、ずれを防いでください。
  • クリックしてOKを適用します。
    ダイアログボックスでオプションを指定

実行後、Kutools は以下のように最後に一致する項目を即座に返します:

Kutoolsによって返されたすべての最後に一致する項目

ヒント:一致しない検索結果に対して#N/Aの代わりにカスタムメッセージを表示したい場合は、オプションをクリックし、見つからない場合に 『#N/A』 と置き換えて指定された値を返しますにチェックを入れて、希望のテキストを入力してください。

#N/A エラー値を指定した値に置き換えるオプション

メリット:数式を編集する必要がありません。一括処理やエラーの置換にも対応しており、Excel 初心者にも、大規模データ処理にも最適です。

デメリット:Kutools アドインのインストールが必要です。この機能は、Kutools のフルバージョンまたはトライアル版でのみご利用いただけます。

実用的なヒント:特にデータが動的に変化する場合は、確定前に必ず入力範囲と出力を確認し、結果の正確性を保証してください。


INDEX と MATCH 関数で VLOOKUP のように最後に一致する値を返す

INDEX 関数と MATCH 関数を組み合わせたアプローチは、Excel で最後に一致する値を検索するための柔軟性があり、バージョン間互換性のあるもう一つの方法です。この手法は非常に汎用性が高く、データの並べ替えも不要で、レガシーな旧バージョンを含むすべてのExcel バージョンで使用できます。ただし、使用しているExcel のバージョンによっては、正しい結果を得るために配列数式を使用する必要があります。

この方法を使用するには、以下の手順に従ってください:

1。 対象のセルに次の数式を入力してください:

=INDEX($C$2:$C$12,MATCH(2,1/($A$2:$A$12=E2)))

2。 数式を確定します:

  • Excel 2019 以前のバージョンでは、Ctrl + Shift + Enterで確定してください(Excel が自動的に中かっこ{}を追加します)。
  • Microsoft 365 / Excel 2021 以降のバージョンでは、Enterキーを押すだけで簡単に完了します。

3。 複数の検索値がある場合は、フィルハンドルを下にドラッグして隣接する行に数式を一括適用できます。

INDEX関数とMATCH関数で最後に一致する値をVLOOKUP
数式内:
  • $A$2:$A$12は検索条件となる列です。
  • E2は検索対象の値が入力されているセルです。
  • $C$2:$C$12は返される列(結果)です。
数式の説明:
  • 1/($A$2:$A$12=E2)は、検索条件が真となるセルの位置に1を、それ以外の位置には#DIV/0!エラーを含む配列を生成します。これにより、論理値 TRUE/FALSE が数値信号に変換されます。
  • MATCH(2, 1/($A$2:$A$12=E2))は、Excel に存在しない数値 2を検索させます。MATCH 関数は、配列内で最後に見つかった1の位置、つまり最後の一致した行の位置を返します。
  • INDEX($C$2:$C$12, ...)は、その位置に基づいて戻り値の範囲から対応する値を取得します。

アドバイスとヒント:

  • 検索範囲と戻り値の範囲に行数が同じであることを確認し、下方にコピーする際は絶対参照を使用してください。
  • #N/A#DIV/0!が表示された場合は、検索配列内のキーに不一致や空白、エラーがないか確認してください。出力をよりスッキリと仕上げるには、数式をIFERRORで囲みましょう。例:=IFERROR(your_formula, "")

メリット:汎用性が高く、すべてのExcel バージョンと下位互換性があります。

デメリット:やや覚えづらく、古いExcel バージョンでは配列入力が必要です。


XLOOKUP 関数で VLOOKUP のように最後に一致する値を返す

XLOOKUP 関数は、Excel 365およびExcel 2021 以降で利用可能で、最後に一致する値を取得するための最もシンプルでモダンな解決策です。検索方向やエラー処理を細かく制御できるパラメータにより、XLOOKUP は下から上へと検索を行い、複雑なレガシー配列数式を使わずに最後に一致する値を簡単に取得できます。

XLOOKUP で最後に一致する値を取得するには:

1。 対象セルに以下の数式を入力してください。追加の検索値の範囲にも適用したい場合は、フィルハンドルをドラッグしてコピーしてください。

=XLOOKUP(E2, $A$2:$A$12, $C$2:$C$12, , , -1)
XLOOKUP関数で最後に一致する値をVLOOKUP
数式内:
  • E2:検索値
  • $A$2:$A$12:検索対象の配列。
  • $C$2:$C$12:戻り値の配列です。
  • , ,:2 つのカンマは、省略可能なif_not_foundおよびmatch_modeが省略され、それぞれデフォルト値が使用されることを示しています。
  • -1search_mode=-1は末尾から先頭(下から上)に向かって検索するため、最後に一致する箇所が得られます。

実用上の注意点:

  • 特別な配列入力は不要です。必要に応じて、if_not_foundでカスタムメッセージを指定できます。
  • XLOOKUP は、指定された配列の順序()-1では下から上)に基づいて最後に一致する値を返します。フィルターによる可視性には影響されません。
  • 一括処理を行う場合は下方にコピーしてください。各行は独立して評価されます。

メリット:構文がシンプルで、標準機能として下から上への検索が可能。レガシーな配列数式も不要です。

制限事項:Excel 365 およびExcel 2021 以降でのみご利用いただけます。


VBA マクロで VLOOKUP のように最後に一致する値を返す

検索プロセスを自動化したい場合や非常に大規模なデータセットを扱う場合など、特定のケースでは VBA マクロが実用的な解決策となることがあります。VBA を使うと、検索ロジックをカスタムスクリプトとして実装でき、数式では簡単に対処できない例外や特殊な条件も処理できます。

適用シナリオ:同じ検索操作を複数のワークブックで頻繁に行う必要がある場合や、ロジックを再利用可能なスクリプトとしてまとめたい場合は、ぜひこの解決策を優先してください。

1。開発タブのVisual Basicをクリックして、Microsoft Visual Basic for Applicationsウィンドウを開きます。次に、挿入メニューから標準モジュールをクリックし、以下のコードをモジュールに貼り付けます:

Option Explicit

Sub FindLastMatch()
    Dim searchRange As Range
    Dim returnRange As Range
    Dim searchValue As Variant
    Dim i As Long
    Dim foundValue As Variant
    Dim found As Boolean
    
    Const xTitleId As String = "KutoolsforExcel"
    
    ' Get ranges and value from user
    On Error GoTo CleanFail
    Set searchRange = Application.InputBox("Select the lookup column (single column):", xTitleId, Type:=8)
    If TypeName(searchRange) = "Boolean" Then Exit Sub  ' Cancel pressed
    
    Set returnRange = Application.InputBox("Select the return column (single column):", xTitleId, Type:=8)
    If TypeName(returnRange) = "Boolean" Then Exit Sub  ' Cancel pressed
    
    searchValue = Application.InputBox("Enter the lookup value:", xTitleId, Type:=2)
    If VarType(searchValue) = vbBoolean And searchValue = False Then Exit Sub  ' Cancel pressed
    
    ' Basic validations
    If searchRange.Columns.Count <> 1 Or returnRange.Columns.Count <> 1 Then
        MsgBox "Please select a single column for both lookup and return ranges.", vbExclamation
        Exit Sub
    End If
    
    If searchRange.Rows.Count <> returnRange.Rows.Count Then
        MsgBox "Lookup and return ranges must have the same number of rows.", vbExclamation
        Exit Sub
    End If
    
    If Not searchRange.Parent Is returnRange.Parent Then
        MsgBox "Lookup and return ranges must be on the same worksheet.", vbExclamation
        Exit Sub
    End If
    
    ' Scan from bottom to top
    found = False
    For i = searchRange.Rows.Count To 1 Step -1
        If CStr(searchRange.Cells(i, 1).Value) = CStr(searchValue) Then
            foundValue = returnRange.Cells(i, 1).Value
            found = True
            Exit For
        End If
    Next i
    
    If found Then
        MsgBox "The last matching value is: " & foundValue, vbInformation
    Else
        MsgBox "No match found.", vbInformation
    End If
    Exit Sub

CleanFail:
    MsgBox "Operation cancelled or invalid selection.", vbExclamation
End Sub

2。 表示された実行ボタンボタンをクリックしてコードを実行します。ダイアログボックスが表示されたら、検索列と返すカラムを選択し、プロンプトに従って検索値を入力してください。マクロは最終行から上方向にスキャンし、一致する最後の値を表示します。

注記:

  • 検索範囲と戻り値の範囲が単一列であり、行数が同じで、同じワークシート上にあることを確認してください。
  • マクロは簡略化のためテキストとして値を比較します。数値形式(例:00123 と123)を区別する必要がある場合は、比較ロジックを適宜調整してください。
  • 一致が見つからない場合、または選択が無効/キャンセルされた場合は、通知が表示されます。

メリット:完全に自動化されており再利用可能。セルごとに数式を入力したりコピーしたりする手間が一切ありません。

デメリット:初期設定がやや複雑で、マクロ有効ブック(。xlsm)と信頼されたマクロ環境が必要です。


Excel で最後に一致する値を返すことは、最新の取引を監視したり、更新内容を分析したり、時間の経過とともに変更を追跡したりする際の一般的な要件です。上記の方法を使えば、使用しているExcel のバージョンやワークフローの好み、Excel ツールセットへの習熟度に応じて、最適なアプローチを選択できます。LOOKUP、INDEX&MATCH、XLOOKUP、Kutools、VBA マクロの各アプローチにはそれぞれ独自の強みと最適な使用シナリオがあります。

トラブルシューティング:数式が#N/A や#DIV/0!エラーを返す場合は、範囲の選択ミスがないか、検索値が実際に存在するか、そして範囲が正しく整列しているかを確認してください。数式の信頼性を高めるには、検索列内の空セルは可能な限り避けることをおすすめします。不明点がある場合は、まず小規模なサンプルデータで数式を試し、設定をしっかり検証しましょう。これにより、潜在的なミスを簡単に特定できます。

複数の結果を取得したり、一致項目を連結したり、ワークシート間で検索したりするなど、さらに高度な検索テクニックについては、Excel チュートリアルページなどの専門リソースをご活用ください。これらの検索スキルを習得すれば、Excel での重要なデータの処理・分析・レポート作成がより効果的に行えるようになります!


関連記事:

  • 複数のワークシート間で値を VLOOKUP する
  • Excel では、1 つのワークシート内のテーブルに対して VLOOKUP 関数を簡単に適用して一致する値を返すことができます。しかし、複数のワークシートにまたがって値を VLOOKUP する方法を考えたことはありますか?ここでは、次の3 つのワークシートにデータ範囲があり、これらの3 つのワークシートから条件に基づいて対応する値の一部を取得したいと仮定します。
  • Excel で VLOOKUP の完全一致と近似一致を使用する
  • Excel では、VLOOKUP 関数はテーブルの最も左側の列で値を検索し、同じ行の指定された範囲から対応する値を返す、最も重要な関数の一つです。しかし、あなたはExcel で VLOOKUP 関数を正しく活用できていますか?この記事では、Excel での VLOOKUP 関数の使い方をわかりやすく解説します。
  • Excel で複数の対応する値を VLOOKUP して連結する
  • ご存知の通り、Excel の VLOOKUP 関数は値を検索して別の列の対応するデータを返すのに便利ですが、通常は複数の一致するデータがある場合でも最初に見つかった値しか取得できません。この記事では、1 つのセル内または縦方向のリストで複数の対応する値を VLOOKUP し、それらを連結する方法をご紹介します。

最高の Office 業務効率化ツール

🤖KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気の機能検索・ハイライト、または重複をマーキング     空白行を削除する     データを失うことなく列の結合またはセルを     数式を使用しない四捨五入...
スーパー LOOKUP複数条件 VLookup    複数値 VLookup     複数シート間 VLookup      ファジーマッチ....
高度なドロップダウンリストドロップダウンリストをすばやく作成     連動型ドロップダウンリスト     複数選択可能なドロップダウンリスト....
列マネージャー指定した数の列を追加列の移動非表示列の表示状態を切り替え範囲および列の比較...
注目の機能グリッドフォーカス     デザインビュー   強化された数式バー    ワークブックとシートマネージャー     リソースライブラリ(オートテキスト)  日付ピッカー     ワークシートの統合    暗号化/セルの復号化    リストからメール送信     スーパーフィルター      特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除、...)   50+チャートタイプガントチャート、...)   40+実用的関数誕生日に基づいて年齢を計算します、...)   19 挿入ツールQR コードを挿入パスから画像を挿入、...)   12 変換ツール単語に変換する為替レートの変換、...)   7 結合と分割ツール高度な行のマージセルの分割、...)さらに多数
Kutools はお好みの言語でご利用いただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+の他の言語をサポートしています!

Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。


Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします

  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!

すべてのKutools アドインが、たった1 つのインストーラーで完結。

Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。

ExcelWordOutlookTabsPowerPoint
  • オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
  • インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
  • 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
  • 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得