EXCEL関数を全く覚えられないボンクラアラフィフオヤジの管理人です。
先日の【MATCH】関数に引き続き・・・
今回は【INDEX】関数と組み合わせて【VLOOKUP】関数を代替する方法を試してみました。
まずは【MATCH】関数で行番号を取得する
【INDEX】関数は、配列から行番号と列番号を指定して、該当する値を表示させる関数です。
式の入力は次のとおりです。
=INDEX(配列,行番号,列番号)
上の図では、まずC列に【MATCH】関数を使って【K:L】の配列から、B列をキーとして行番を取得しています。
2行目の例では・・・
=MATCH(B2,$K$2:$K$6,0)
として、【K:L】の配列から行番をC列に取得しています。
【INDEX】関数で目的の値を取得する
次に【INDEX】関数で目的の値を取得します。
【VLOOKUP】を使うなら次の様になります。(2行目の例)
=VLOOKUP(B2,$K$1:$L$6,2,false)
個人的には・・・【VLOOKUP】で十分だと思うのですが・・・
なぜかYoutube界隈では【VLOOKUP】を使うよりも【INDEX】と【MATCH】関数を使えみたいな風潮があるので、管理人もそれに乗ることにします。
上の列のE列には【INDEX】と【MATCH】を使って目的の値を取得しています。
式は、一部省略していますが・・・次のとおりです。(2行目の例)
=INDEX($K$2:$L$6,C2,2)
これを省略しない形にすると・・・(C2セルに入力されている式を置き換える)
=INDEX($K$2:$L$6,MATCH(B2,$K$2:$K$6,0),2)
複数条件を指定できる
【VLOOKUP】では、できませんが・・・
【MATCH】関数では複数の条件を設定できます。
上の図の例では、A列とB列をキーとして【N:P】配列から合致する行を抽出しています。
【MATCH】を使った複数条件の式は次のとおりです。(2行目の例)
{=MATCH(A2&B2,$P$2:$P$15&$N$2:$N$15,0)}
但し、式を入力する場合は【Ctrl+Shift+Enter】で確定させる必要があるので注意です。
式の詳細ですが・・・
{=MATCH(条件1 & 条件2 , 条件1の配列 & 条件2の配列 ,0)}
となります。
各条件の配列の指定順は合わせる必要があります。
複数条件を指定して【INDEX】関数で目的の値を取得するには次のとおりとなります。(2行目の例)
{=INDEX($N$2:$P$15,MATCH(A2&B2,$P$2:$P$15&$N$2:$N$15,0),2)}
【VLOOKUP】では、配列の一番左側にキーを持ってくる必要があったり・・・
複数条件を指定できなかったりするので、こういう点では・・・
【INDEX】と【MATCH】は便利ですね。
すぐに使い方を忘れそうなので、忘備録として掲載しておきます。
コメント