Excel VLOOKUP左側の値を取得したい!

左側の値を取得できない

Excelで検索データを抽出する関数で使用頻度が高い関数 VLOOKUP関数。指定した範囲の表を縦方向に検索し特定のデータを取り出します。

VLOOKUP関数は検索値より右側の値を取得するため左側の値を取得したい時に使用することができません。

VLOOKUP関数仕様

=VLOOKUP(検索値、範囲、列番号、検索方法)

検索値:検索対象になる値(例、商品コードや顧客コードなど)表の中からデータを探す際のキーになる値

範囲:検索値を探す範囲と返す値の範囲を指定して囲います。

列番号:検索値があった場合に指定した範囲の中で何列目の値を取得するの指定する。

検索方法:「TRUE」(検索値が一番近い値を取得) or 「FALSE」(検索値が一致する値のみ取得)

VLOOKUP関数は使用の通り検索値の列より右側の値 「商品名」や「個数」は取得します。

VLookupだと検索キーから右側の値しか取得できない

しかし、検索キーより左側の値「日付」を取得したい場合はVLOOKUP関数が使用できません。

検索キーから左側の値を取得したい

Excel上で検索キーより左側の値を取得したい場合がよくあります。その場合はVLOOKUP関数は使えませんがINDEX関数とMACH関数を組み合わせることによって値が取得できます。

INDEX関数仕様

INDEX関数は二通りの書式があります。

配列形式 =INDEX(配列,行番号,列番号)

参照形式 =INDEX(参照,行番号,列番号,領域番号)

今回、主題の指定範囲の左側の値を取得したい場合は「配列形式」を使います。

配列:データを取り出す範囲を指定します。

行番号:データを取り出す行番号を指定します。

列番号:データを取り出す列番号を指定します。

INDEX関数を使い配列を「B5:C8」を指定します。この配列から値を取得したい行番号「2」行目と列番号「1」を指定して「B00002」の左側の値「2022/11/16」を取得できました。

INDEX関数仕様

今回、「行番号」を指定しましたが、このままでは他のコードの左側を取得したい場合行番号を手動で変更しなければいけません。

行番号を取得するために「MACH」関数を使用します。

MATCH関数仕様

=MATCH(検索値、検索範囲、照合の種類)

検索値:検索対象になる値

検索範囲:検索値を探す範囲を指定します。

照合の種類:0検索値が一致する値を取得、1最大の値を検索、-1最小の値を検索

MATCH関数は検索値に該当する行番号を返します。

検索範囲「C5:C8」の中から検索値「G9」を照合の種類「0」一致する値を探します。

MATCH関数仕様

MATCH関数で行番号を取得することが出来ました。

次にINDEX関数とMATCH関数を組み合わせて値を取得します。

INDEX関数とMATCH関数の組み合わせ

INDEX関数で行番号を指定して「B00002」の左側を取得していたのをMATCH関数を組み合わせて行番号を取得することにより指定範囲の左側の値を取得できます。

INDEX関数とMATCH関数の組み合わせ

関数の組み合わせ方はINDEX関数の行番号を入力する場所で「名前ボックス」をクリックして「その他の関数」を選択します。

使い方

関数の挿入で「MATCH」関数を表示して選択します。

MATCH関数を検索する

MACTH関数を入力するとINDEX関数の中に入力されます。

ネスト

以上で検索値より左側の値を取得する方法でした。

さいごに

EXCELの関数を二つ以上組み合わせることを関数のネスト(入れ子)と言います。NESTには箱などを組み合わせるという意味があり「nested boxes」とグーグルで検索するとわかりやすいと思います。

以上で検索値の左側の値を取得したいでした。今回の記事がみなさんの参考になれれば幸いです。

改善効果・利用頻度

改善効果