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

Excel で右側から左側の値を VLOOKUP 関数で検索する方法は?

著者Xiaoyang変更日

Excel の VLOOKUP 関数は、データの検索と取得に広く使われています。しかし、その制限の一つは、値を左から右にしか検索できない点です。つまり、検索値はテーブルの最初の列に存在し、返す値はその右側の列にある必要があります。では、右から左へ値を検索したい場合はどうすればよいでしょうか?本ガイドでは、数式に基づく方法や自動化された VBA ソリューションなど、この課題を解決するためのいくつかのアプローチをご紹介します。これらの右から左への検索テクニックを理解し活用することで、従来の VLOOKUP では対応しきれないような実際のデータレイアウトにも柔軟かつ効果的に対応できます。


VLOOKUP 関数と IF 関数で右から左に値を VLOOKUP する

VLOOKUP 関数単体では右から左への検索はできませんが、IF 関数を活用してデータ構造を工夫すれば、その制限を乗り越えることができます。この方法は、使い慣れたExcel 関数を使い続けたいときや、実際のデータセットを再配置することなく迅速に解決したい場合に特に役立ちます。

必要なセルに次の数式を入力し、塗りつぶしハンドルをドラッグして、この数式を適用したいすべてのセルにコピーしてください。この方法は静的範囲には効果的ですが、データが追加されたり構造が変更されたりした場合には、調整が必要になる場合があります。スクリーンショットをご参照ください。

=VLOOKUP(E2, IF({1,0}, $C$2:$C$9, $A$2:$A$9), 2, 0)

この数式の説明:
  • E2:これは検索対象の値です。Excel はこのキーを使って、指定された範囲内を検索します。
  • IF({1,0}, $C$2:$C$9, $A$2:$A$9):この数式の部分は、列の順序を入れ替えることで仮想テーブルを構築します。通常、VLOOKUP 関数はテーブルの最初の列のみを検索対象とし、その右側の列から値を取得します。しかし、IF({1,0}, .。。) を使うことで、Excel に列を入れ替えた新しい仮想テーブルを作成させることができます。
    ♦ 新しいテーブルの最初の列は $C$2:$C$9 です。
    ♦ 新しいテーブルの2 番目の列は $A$2:$A$9 です。
  • 2:これは、IF 関数によって作成された仮想テーブルの2 番目の列から値を返すよう VLOOKUP に指示します。この場合、値は$A$2:$A$9 から返されます。
  • 0:完全一致を指定します。E2 の値が$C$2:$C$9 に見つからない場合は、エラーが返されます。

ヒント:#N/A エラーが表示された場合は、検索値が検索列に存在するかを再度ご確認ください。この方法はシンプルな(静的範囲の)検索には直感的ですが、大規模な動的範囲や、テーブルのサイズや位置が頻繁に変更される場合には適していないことがあります。


Kutools for Excel で右から左に値を VLOOKUP する

Kutools for Excel を使えば、さらにユーザーフレンドリーな操作が可能に。右から左への検索を含む複雑な検索も、高度な機能で簡単に実行できます。複雑な数式を使わずに済ませたい方、手動設定なしで高度な検索オプションに素早くアクセスしたい方に最適です。この方法は、どんなサイズのデータにも対応し、頻繁に検索を行うユーザーにもぴったりです。

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

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

1。「Kutools」>「スーパー LOOKUP」>「右から左に検索」をクリックしてください。スクリーンショットをご参照ください。

2. 「右から左に検索」ダイアログボックスで、以下の操作を行います。

  • 「リスト配置エリア」セクションと「検索値の範囲」セクションから、それぞれ検索値セルと出力セルを選択してください。
  • 次に、「データ範囲」セクションから該当する項目を指定してください。範囲が正確であることをご確認いただき、不一致を回避しましょう。
  • 最後に、「OK」ボタンをクリックしてください。
     ダイアログボックスでオプションを指定

3。これで、右側のリストから検索値の範囲に一致するレコードが表示されました。スクリーンショットをご参照ください:

 Kutools を使用して右から左に値をVLOOKUP

ヒント:

#N/A エラー値を別のテキストに置き換えたい場合は、「オプション」ボタンをクリックし、「見つからない場合に 『#N/A』 と置き換えて指定された値を返します」オプションをオンにして、必要なテキストを入力するだけです。
 #N/A エラー値を指定した値に置き換えるオプション

この機能はワークシートを共有する際に特に便利で、最終的な出力にエラーメッセージが表示されなくなります。


INDEX 関数と MATCH 関数で右から左に値を VLOOKUP する

INDEX と MATCH の組み合わせは、VLOOKUP に代わる多用途で強力な選択肢です。検索方向(左・右・上・下)を問わず値を検索できるため、検索列がデータ範囲の先頭列にない場合でも柔軟に対応可能です。特に、大規模なデータセットや列の位置が変更される可能性のある動的テーブルに最適です。

下記の数式を空のセルに入力またはコピーして結果を表示し、その後、フィルハンドルを下方向にドラッグして、この数式を適用したいセルまで範囲を広げてください。対象データ全体が範囲内に含まれていることを確認し、数式を下方向にコピーする際に参照範囲を固定したい場合は、絶対参照($記号)をご利用ください。

=INDEX($A$2:$A$9,MATCH(E2,$C$2:$C$9,0))

この数式の説明:
  • E2:これは検索対象の値です。
  • MATCH(E2, $C$2:$C$9,0)MATCH 関数は、E2 の値を範囲$C$2:$C$9 内で検索します。ここで「0」は完全一致を指定しており、値が見つかった場合は、その範囲内での相対位置を返します。
  • INDEX($A$2:$A$9, ...) 次に、INDEX 関数は MATCH 関数が返した位置をもとに、範囲$A$2:$A$9 内から対応する値を取得します。

ヒント:複数の列にわたって検索する必要がある場合は、INDEX の範囲を調整するか、複数条件に対応できるよう数式を強化できます。データが頻繁に更新されたり、大規模なテーブルを対象としたりする場合、列の移動や検索テーブルの再作成が不要なため、VLOOKUP よりも INDEX と MATCH の方が一般的に堅牢です。


XLOOKUP 関数で右から左への VLOOKUP 値検索

Excel 365 またはExcel 2021 をご利用なら、XLOOKUP 関数が VLOOKUP に代わる最新かつシンプルな選択肢です。複雑な数式を使わずとも、任意の方向で値を検索できます。XLOOKUP は、よりクリーンで柔軟性の高いアプローチを求める方や、Excel の最新バージョンで作業している方に最適です。VLOOKUP や HLOOKUP とは異なり、XLOOKUP では返す列が検索列の右側にある必要がなく、はるかに高い柔軟性を実現します。

下記の数式を空のセルに入力(またはコピー)して結果を表示した後、フィルハンドルを下方向にドラッグし、この数式を適用したいセルまで範囲を広げてください。この方法は、共有ブックでの利用時や、データ構造が変更される可能性のあるテンプレート作成時に特に有効です。

=XLOOKUP(E2,$C$2:$C$9,$A$2:$A$9)

この数式の説明:
  • E2:これは検索対象の値です。
  • $C$2:$C$9これは E2 の値を検索する範囲で、検索配列となります。
  • $A$2:$A$9:これは対応する値を返す範囲で、戻り値は配列となります。

注意点:XLOOKUP はExcel 365 およびExcel 2021 より前のバージョンではご利用いただけません。それ以前のバージョンをお使いの場合は、上記の INDEX&MATCH 方式をご利用いただくか、VBA などの他の代替手段をご検討ください。


VBA マクロによる自動化された右から左への VLOOKUP 値検索

数式ベースの解決策では制限が大きすぎる場合や、繰り返しの検索作業を自動化したい場合は、VBA(Visual Basic for Applications)を使うことで、強力な右から左への検索が実現できます。さらに、より複雑な条件やバッチ処理にも対応可能。この方法は、大規模なデータセットの処理や自動化が必要な場面、あるいは通常の数式では簡単に実現できないタスクに特に効果を発揮します。ただし、VBA を使用するにはマクロを有効化し、Excel の開発環境に関する基本的な知識が必要です。

適用可能なシナリオ:自動レポート作成、動的範囲の処理、非連続データの操作、または条件付き・多段階の検索を伴うケース。

メリット:高度な柔軟性、再利用性、カスタマイズ性を兼ね備えています。デメリット:マクロの有効化と基本的なスクリプト知識が必要で、マクロが制限されている共有ブックには不向きです。

この VBA ソリューションの使用方法:

1。「開発」>「Visual Basic」をクリックして、VBA エディターを開きます。表示された「Microsoft Visual Basic for Applications」ウィンドウで、「挿入」>「標準モジュール」をクリックし、以下のコードをモジュールウィンドウに貼り付けてください。

Sub RightToLeftVlookup()
    Dim lookupValue As Variant
    Dim searchRange As Range, returnRange As Range
    Dim resultCell As Range
    Dim foundCell As Range
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set searchRange = Application.InputBox("Select the range to search (lookup column):", xTitleId, Type:=8)
    Set returnRange = Application.InputBox("Select the range to return value from (target column):", xTitleId, Type:=8)
    Set resultCell = Application.InputBox("Select the cell to output the result:", xTitleId, Type:=8)
    lookupValue = Application.InputBox("Enter the value to look up:", xTitleId, Type:=2)
    
    If searchRange Is Nothing Or returnRange Is Nothing Or resultCell Is Nothing Or lookupValue = "" Then
        MsgBox "Operation cancelled.", vbExclamation
        Exit Sub
    End If
    
    Set foundCell = searchRange.Find(lookupValue, LookIn:=xlValues, LookAt:=xlWhole)
    
    If Not foundCell Is Nothing Then
        Dim rowOffset As Long
        rowOffset = foundCell.Row - searchRange.Rows(1).Row + 1
        resultCell.Value = returnRange.Cells(rowOffset, 1).Value
    Else
        resultCell.Value = "#N/A"
    End If
End Sub

2。コードを貼り付けたら、VBA エディターを閉じてExcel に戻り、F5 キーを押すか、「実行ボタン」をクリックします。

3。プロンプトに従って、検索列(検索値が含まれる列)、返すカラム(結果を取得したい列)、出力セル、および検索値自体を指定してください。マクロは、検索列の左側にあるカラムであっても、返すカラムから一致する値を自動的に結果セルに入力します。

トラブルシューティングとヒント:

  • 正確な結果を得るには、検索範囲と戻り範囲の行数が一致しており、かつ両方が垂直方向(行単位で整列)であることをご確認ください。
  • データが異なるシートにある場合は、プロンプト中に適切な範囲を選択してください。ただし、行の整列を確保する必要があります。
  • 検索値が見つからない場合、マクロは指定したセルに「#N/A」を返します。この結果が表示されたら、検索範囲と値のスペルを今一度ご確認ください。
  • 検索値の範囲にマクロを適用するには、マクロをさらに調整してその範囲内の値をループ処理するか、必要な各値に対して繰り返し実行することができます。
  • VBA コードを正しく機能させるには、ワークブックでマクロを有効にしてください。

この VBA マクロは、右から左への検索作業を自動化したり、高度または可変的な条件に対応したりする実用的な選択肢です。特に、こうしたタスクを日常的に行っている場合や、数式を超えたロジックが必要な場面で効果を発揮します。


VLOOKUP は基本的な検索には非常に便利なツールですが、「検索列の右側にしか値を返せない」という制限があります。しかし、Excel には右から左へ一致する値を取得できる他の方法もいくつか用意されています。これらの手法を活用すれば、ワークシート内のどこにデータがあっても、簡単に、そして効率的に検索・取得が可能になります。実用的なポイントとしては、①参照範囲を慎重に確認すること、②完全一致(FALSE)を指定すること、③ご使用のExcel バージョンやワークフローに最も適した方法を選ぶことが挙げられます。#N/A などのエラーが表示された場合は、必ず「検索値が実際に存在するか」「配列のサイズが一致しているか」を確認してください。VBA やKutoolsなどのアドインを使用する際は、重要なシートに適用する前に、必ず作業内容を保存し、サンプルデータで事前にテストを行いましょう。さらに多くのExcel テクニックやヒントを知りたい方は、当サイトで数千ものチュートリアルをご覧いただけます


関連記事:

  • 複数のワークシート間で VLOOKUP を使用して値を検索する
  • Excel では、VLOOKUP 関数を使えば、1 つのワークシート内の単一テーブルから一致する値を簡単に取得できます。しかし、複数のワークシートにまたがって値を検索する方法を検討したことはありますか?ここでは、次の3 つのワークシートにデータ範囲があり、これらのワークシートから条件に基づいて対応する値を取得したいと仮定します。
  • Excel で VLOOKUP の完全一致および近似一致を使用する
  • Excel では、VLOOKUP 関数はテーブルの最も左端の列で値を検索し、その同じ行にある指定範囲から対応する値を返す、最も重要な関数の一つです。しかし、あなたはExcel で VLOOKUP 関数を正しく使いこなせていますか?本記事では、Excel における VLOOKUP 関数の使い方をわかりやすく解説します。
  • Excel で下から上へ向かって VLOOKUP で一致する値を検索する
  • 通常、VLOOKUP 関数はリストの上から下へ検索し、最初に一致した値を取得します。しかし、場合によっては最後に一致した値を抽出するために、下から上へと逆方向に検索する必要があります。Excel でこのタスクを効果的に処理する良い方法はありますか?
  • VLOOKUP で一致する値の行全体/行全体をExcel で返す
  • 通常、VLOOKUP 関数を使えばデータ範囲から一致する値を検索して返すことができますが、特定の条件に基づいて該当する行全体を検索・返したいと思ったことはありませんか?以下のスクリーンショットをご覧ください。

  • Excel で VLOOKUP を使用して複数の対応する値を連結する
  • ご存知の通り、Excel の VLOOKUP 関数は値を検索し、別の列の対応するデータを返すのに役立ちますが、一般的には複数の一致データがある場合、最初の関連値しか取得できません。本記事では、VLOOKUP を使用して複数の対応する値を1 つのセル内または縦方向のリストに連結する方法について説明します。

最高の 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 日間のフル機能トライアル— 登録不要、クレジットカード不要
  • 最高のお得感— 個別アドイン購入よりお得