2024年11月18日【ID:0】
【Excel】いずれかの条件を満たすデータの集計
以下の売上管理表を元に、商品名が「A」もしくは「B」などと、複数指定した商品の売り上げを合計する方法について解説していきます。
こちらでは、2つの商品を指定して、その2つの商品の売り上げの合計を求めていきます。
※集計の対象行を色付けしています。
スピルを使わない場合
まずは、スピルを使わずに求める方法について解説していきます。
スピルを使わない場合は、SUMIF関数を使います。
SUMIF関数では、指定した条件を満たしたデータのみを集計することができます。
この関数の使い方は、以下になります。
=SUMIF(範囲, 検索条件, [合計範囲])
// 範囲:対象を絞り込むためのデータ範囲
// 検索条件:「範囲」に指定したデータ範囲から絞り込む条件
// [合計範囲]:合計を求めたいデータ範囲(省略時は「範囲」と同じになる)
実際に、以下の表のセルF3の値と一致する商品名の売上を求める場合、以下のような数式になります。
=SUMIF(C:C,F3,D:D)
後は、同様にもう片方(セルF4)の商品名の売上を求め、以下のように加算することで、複数の商品の売り上げの合計を求めることができます。
=SUMIF(C:C,F3,D:D)+SUMIF(C:C,F4,D:D)
複数条件を満たすデータのみを集計するSUMIFS関数というものもありますが、この関数の場合は、「いずれかを満たす」という条件を指定することができません。
そのため、上記のように、SUMIF関数で1つ1つの合計を求めてから加算しています。
この方法の注意点としては、加算するそれぞれの合計の中に重複したデータが含まれていた場合は、正しく集計できないという点です。
例えば、以下のような表で、「「商品1」が「A」もしくは「商品2」が「B」」の商品を集計する場合、加算する方法では正しく求められない可能性があります。
以下の例の場合は、赤色の枠で囲まれたデータが重複して加算されてしまっています。
=SUMIF(C:C,H3,E:E)+SUMIF(D:D,H4,E:E)
そのため、データが重複する際は、重複分を引く数式を更に加える必要があります。
(こちらでは解説を省略)
上記の注意点を踏まえると、スピルを活用した次の方法がオススメになります。
スピルを使う場合
次に、スピルを使って求める方法について解説していきます。
スピルが使える環境(Excel2021以降、もしくは365)では、FILTER関数が活用できます。
FILTER関数では、指定した条件を満たしたデータのみを抽出することができます。
この関数の使い方は、以下になります。
=FILTER(配列, 含む, [空の場合])
// 配列:抽出対象のデータ範囲
// 含む:抽出する条件
// [空の場合]:抽出対象が存在しない時に表示する値(省略時はエラーになる)
実際に、以下の表のセルF3とF4の値を含む商品名の売上を抽出する場合、以下のような数式になります。
=FILTER(D:D,(C:C=F3)+(C:C=F4))
// 「または」という条件は、条件式を「+」で繋げる必要がある
// 「空の場合」は、こちらでは省略する
後は、この抽出された売上の合計を求めていきます。
その際は、以下のように、全体をSUM関数で囲むことで求めることができます。
=SUM(FILTER(D:D,(C:C=F3)+(C:C=F4)))
FILTER関数を活用することで、データが重複して抽出される心配がなくなります。
例えば、以下のような表で、「「商品1」が「A」もしくは「商品2」が「B」」の商品を集計する場合、以下のような数式で求めることができます。
=SUM(FILTER(E:E,(C:C=H3)+(D:D=H4)))