VLOOKUPの結果を「すべて」合計したい(SUMPRODUCTとSUMIFを使う)

まさかの、やり方が分からなかったのでメモっておきます。

どんなことがしたいか

今回やりたいのは、下記の図のような、◎や△の点数の合計値を、一番下の赤い枠に出したい、というようなことです。

◎や△がそれぞれ何点なのかは、別セルで定義をしてあります。

つまり「VLOOKUPの結果をすべてSUMする」ことなのですが、これを作業列を使わずにやりたかった。
というか、天下のExcel様がこんな「よくある」「簡単な」計算、1セル内だけで完結できないわけないもんね?

やり方

VLOOKUPも、INDEX+MATCH も使いません。
さらに、さすがにこれは使うだろうと思っていた配列(Shift+Ctrl+Enter)も使いません。

=SUMPRODUCT(SUMIF($X$2:$X$5,B2:B5,$Y$2:$Y$5))

計算したい列が「B列」で、点数の左側が「X列」、X列に対応した点数が「Y列」と仮定すると上記になります。

つまり、下記の様な形。

=SUMPRODUCT(SUMIF(マスターキー列,計算したい列,マスター値列))

SUMPRODUCTは、配列を合計してくれる関数としてそれなりに知っているつもりですが、このSUMIFというのをナメてましたね…。

SUMIFの引数は(範囲,検索条件,[合計範囲])となっているのですが、「検索条件」を配列で突っ込むと結果も配列で返してくれるということなのだと思います。

「すべて」ではなく「条件ごと」にSUMしたい場合

これは「VLOOKUP 合計」とかでググればたくさんヒットします。

上記の例で言えば「値段が△の果物の合計値」とか、「◎だけの合計値」とか、条件を指定しなくてはいけないのですよね。
でも、「すべて」「全部」合計したい! という、逆に簡単な話のはずの今回のケースは、まさかのvlookupも配列関数も使わないというオチ。
条件の箇所にアスタリスク突っ込んでみたりとかもしたのですが、うまく行かなかった。


もし、SUMPRODUCT✕SUMIFの今回のやり方以外にできる方法を他にご存知の方がいたら、教えてくれると嬉しいです。