Excelで行と列の条件を満たす値を集計するにはどうする?
以下のような表があった場合に、縦列と横列の交差する値を取得したいというようなケースがあります。実際はもっと大きな表で、集計結果も別シートに表示されていたりすると思いますが、説明の便宜上簡素な表にしてあります。
こんなときどうするかですが、一つの方法は”HLOOKUP関数って何?-知っていると便利かも”でとりあげた方法が考えられます。
すなわちVLOOKUP関数とMATCH関数を使用して求めるという方法です(HLOOKUPよりもVLOOKUPの方が慣れている方が多いと思うので、ここではVLOOK+MATCH関数としました。)
上記のケースでは、「商品B」の「神奈川」は”=VLOOKUP(A12,$A$3:$F$7,MATCH(B12,$A$2:$F$2,0),FALSE)”という算式で求めることができます。
MATCH関数は、検索値の検索範囲内における位置を返すので、上の式では2行目のA列からF列までの何列目に「神奈川」(=B12)が含まれているかを検索し、C列は検索範囲の3番目なので「3」を返します。これにより行と列の条件が交差する部分の値を抽出することができます。
もう一つの方法は、INDEX関数とMATCH関数を組み合わせて使用する方法です。INDEX関数は範囲内の行番号と列番号の位置を指定して、該当する値を取り出す関数で、以下のような式となります。
=INDEX(範囲,行番号,列番号)
行番号と列番号を指定すればよいので、これもMATCH関数を使用することで、行と列の両方の条件を満たす値を抽出することが可能となります。
具体的には以下のような算式となります。
INDEX関数もMATCH関数も馴染みがないというと敷居が高そうにみえるかもしれませんが、やっていることは非常にシンプルなので、この方法も使えるようにしておくと便利だと思います。