エクセルやGoogleスプレッドシートで範囲同士を掛け算できる、SUMPRODUCT関数の使い方をご紹介します。判定式を組み合わせて、複数条件を満たすセルだけを掛け算する方法についても解説しているので、ぜひ参考にしてみてください。
SUMPRODUCT関数の使い方
SUMPRODUCT関数は2つ以上の配列または範囲の積を計算し、その合計を返します。
例えば SUMPRODUCT(A2:A5,B2:B5) なら、(200*2)+(150*5)+(300*1)+(200*3)=2,050 です。指定した範囲のサイズが一致しない場合、エラーになります。
範囲のサイズが一致していれば、空白のセルはゼロ(0)として計算されます。
SUMPRODUCT関数の構成要素:(配列1, [配列2], [配列3], …)
配列2 は省略可能で、デフォルトは 配列1 と同じ長さの {1,1,1,…} です。
そのため SUMPRODUCT(A2:A5) のように配列を1つしか指定しない場合でも、2つ目の配列(1,1,1,1)が自動的に補われます。
これは1つ目の配列の要素に1を掛けた合計を返すので、SUM(A2:A5) と同じです。
縦方向の配列を直接入力する場合、中括弧で囲ってセミコロンで区切ります。
これは配列は縦方向がセミコロン、横方向がカンマで表されるからです。例えば、={2;5;1;3} をそのままシートに入力してみてください。縦方向セルに、値が1つずつ表示されます。
縦方向の配列を直接入力する場合は、中括弧で囲ってカンマで区切ります。
例えば、={2,5,1,3} をそのままシートに入力してみてください。横方向セルに、値が1つずつ表示されます。配列の方向が異なると、サイズの不一致でエラーになります。
SUMPRODUCT関数に条件を指定する方法
配列に対して比較演算子を使用して、判定式を作ります。
例えば A2:A5=”りんご” なら、返り値は {1;0;0;1} です。つまり SUMPRODUCT(A2:A5=”りんご”,B2:B5,C2:C5) なら、(1*200*2)+(1*200*3)=1,000 になります。
これは判定式が成立するならTRUE(1)を、不成立ならFALSE(0)を返すからです。
比較演算子:以下(<=)、より小さい(<)、以上(>=)、より大きい(>)、等しくない(<>)
SUMPRODUCT関数に複数の条件を指定する方法
複数の条件を指定する場合は、条件同士を掛け合わせます。
例えば (A2:A5=”りんご”)*(C2:C5>=3) なら、{1;0;0;1}*{0;1;0;1}={0;0;0;1} です。
ゼロが含まれる要素の積はゼロなので、1*200*3=600 になります。
SUMPRODUCT((配列1 =条件1)*(配列2 =条件2),[配列3],[配列4]…)