HLOOKUPとV LOOKUPをかけ合わせて縦横方向に検索する

数式 / 関数 , , ,

HLOOKUPは左から右方向への検索、VLOOKUPは上から下方向への検索をし、指定した値と一致(近似値)した場合にその列(行)と同じ列(行)にあるセルを返す関数ですが、

HLOOKUPとVLOOKUPが引っ付いたような関数はありません。

LOOKUPという関数が実はあるのですが、コレがそうじゃないの?!って思いきや違います・・。

2次元テーブルにて縦軸、横軸双方で条件一致のセルを返す方法とは?

=INDEX(MATCH,MATCH)

VLOOKUPもHLOOKUPも使いません。

INDEXという範囲内から指定した行番号・列番号からその結果を返す関数と、MATCHという範囲内から指定した検索値が何番目にあるのかを返す関数を使います。

関数 解説 使用例
INDEX
(配列, 行番号, [列番号])

テーブルまたはセル範囲にある値、あるいはその値のセル参照を返します。

=INDEX(A2:B3,2,2)

A2~B3の範囲内で2行目と2列目にあるセルを返す

MATCH
(検査値, 検査範囲, [照合の型])

セルの範囲 (セル範囲: シート上の 2 つ以上のセル。セル範囲を指定する場合、隣接した複数のセル、または隣接していない複数のセルをセル範囲として選択できます。)内で指定された項目を検索し、その項目の相対的な位置を返します。
たとえば、範囲 A1:A3 に値 5、25、および 38 が含まれる場合、次の数式は数値 2 を返します。

 =MATCH(39,B2:B5,0)

“39”の値がB2からB5の何処にあるのかを返す。
返し方はB2にあれば1、B3にあれば2(行目)という形。

これを掛け合わせます。

上の表で ”ううう” と ”ddd” に一致するセル(D5)の”15”という値を返す方法です。

=INDEX ( A1:E7 , MATCH ( “ddd” , A1:A7 , 0 ) , MATCH ( “ううう” , A1:E1 , 0 ) )

解説

INDEXでA1からE7のセルを指定し、その内”ddd”は何行目にあるのか?

5行目ですよね。この5行目というのを1つ目のMATCH関数で表示しています。
MATCHで”ddd”を検索して5行目にあるという事を返しています。

”ううう”は何列目にありますか?

4列目ですよね。2つ目のMATCHで”ううう”を検索して4列目を返しています。

結果、INDEXのA1:E7内の5行目4列目の値を返す式になっていますので、結果は「15」になります。

INDEXとMATCHの組み合わせは結構便利なので憶えておきましょう。

コメントをどうぞ

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  • ▼お小遣い稼ぎしませんか?▼ 日々の生活にhappyをプラスする|ハピタス

    クレジットカード・FX口座を作るだけで簡単に3万円GETです。一切支出はありません。

ワイルドカード INDEX 変換 日付 XLSTART NA() DATE 作業効率UP COLUMN 検索 ユーザー定義関数 図形 コピペ グラフ バーコード 条件付き書式 印刷 SUMIFS 置換 目標 TODAY VLOOKUP フロー図 SUM MATCH テンプレート 無料 HLOOKUP COUNTIF SUMIF
  • 関西在住の30代サラリーマン。事務職で毎日Excelと戯れています。
    システム導入なんて資金が無い!Excelでなんとかやりたい零細中小の社長さん・事務員さんの力になればと思います。
    詳しいプロフィール


PAGE TOP ↑