Excel VLOOKUP関数で左側の値を取得する方法

2019年9月24日

VLOOKUP関数では検索対象となる列が

最も左端である必要があります。

検索列(種類)の左側に取得したい値(番号)があるためVLOOKUPで取得できない例の図解

例えばこの例ではB3セルに「種類」を指定して

C3セルに対応する「番号」を取得したいですが、

B6~D8の表では「番号」は「種類」の左にあるため

普通にVLOOKUP関数を使うと不可能です。

世の中の台帳は基本的に左端に番号やコードがあり

その右に名前や名称があります。

そして名前や名称から、番号やコードを

取得したいケースがあるため

様々な形で検索値の左側の値を

取得したいケースが発生します。

この記事では、その対処法を紹介します。

左側の値を取得する手順

まず方法は三つあります。

  1. 検索列を左に移動
  2. 左側にセル参照だけの列を作成
  3. INDEX関数とMATCH関数を使用

方法1と2は表の構成を変更する手段です。

方法3はVLOOKUP関数ではなく

INDEX関数とMATCH関数を使用します。

検索列を左に移動

身も蓋もないですが第一案。

検索対象列を左端に移動を検討します。

もしVLOOKUP関数の利用が

一時的な用途であれば

使い捨ての新規ブックを作り

別シートにコピーしてから

移動させるのも有効です。

検索列の種類を左に列移動した状態の図解

票の構成を変更して問題ない場合は

最も手軽で根本的な解決方法になります。

左側にセル参照だけの列を作成

こちらも少し身も蓋もないですが、

一番左端に検索対象列を

セル参照するだけの

列を作るのも有効です。

種類をセル参照する列を左端に追加した例

こちらも表の構成を変えてしまいますが、

セル参照だけの単純な数式で済みます。

また左端の列を他に使わない場合、

列の非表示で見えなくすれば

見た目だけは変更のない状態にできます。

INDEX関数とMATCH関数を使用

表の構成を操作したくない場合は

VLOOKUP関数の替わりに

INDEX関数とMATCH関数を使用します。

INDEX(表示項目の範囲,MATCH(検索値,検索範囲,0))
INDEX関数とMATCH関数の使用例と引数の図解

表の構成を変える必要がなく、

非常にスマートな方法ですが、

INDEX関数とMATCH関数は

VLOOKUP関数よりも知名度が低く、

数式も複雑になるため

作成者以外の人がシートを見たとき

セルの数式の意図が読み辛いという

欠点があることに注意が必要です。

なお、この方法は他にもメリットがあるため

興味がある方はこちらの参照をお願いします。

新関数XLOOKUP関数の場合

なお2019年後半にXLOOKUP関数という

かなり便利な上位版がリリース予定です。

こちらでは指定の方法が変わるため

この問題は解消されると思われます。

関連記事

使用した機能

指定した範囲の行と列に対応する値を取得(INDEX関数)

検索値に対応するセルの相対的な位置を取得(MATCH関数)

VLOOKUP関数の使い方・活用方法の記事一覧

フォローする