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です。一切支出はありません。

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


PAGE TOP ↑