Excelで商品データを管理していると、「同じ商品だけを集計したい」「価格差が一定以内の場合だけ数量を合計したい」といった複雑な条件付き集計が必要になることがあります。
特に商品名・価格・数量が別々の列に入力されている場合は、単純なSUM関数では対応できません。この記事では、条件に応じて数量を合計する考え方や、SUMIFS関数などを使った実用的な集計方法について解説します。
Excelで条件付き集計をするときの基本的な考え方
今回のような集計では、まず「何を同じグループとして扱うか」を決めることが重要です。
例えば、商品名が「おにぎり」で価格が100円の商品を集計したい場合は、商品名と価格の2つの条件を指定して数量を合計します。
| 商品名 | 価格 | 数量 |
|---|---|---|
| おにぎり | 100円 | 1 |
| パン | 100円 | 2 |
| おにぎり | 110円 | 3 |
| おにぎり | 140円 | 4 |
| おにぎり | 130円 | 5 |
このような表では「商品名」と「価格」を条件にして数量列を合計すると、希望する集計結果を作成できます。
基本的な集計ならSUMIFS関数を使う
同じ商品名と同じ価格の数量を合計する場合は、SUMIFS関数が便利です。
例えば、A列が商品名、B列が価格、C列が数量の場合、100円のおにぎりの数量を求める式は以下になります。
=SUMIFS(C:C,A:A,”おにぎり”,B:B,100)
この式では、A列がおにぎり、B列が100という条件に一致するC列の数量だけを合計します。
結果として、同じ商品名・同じ価格の商品だけをまとめて表示できます。
価格差が10円以内の商品をまとめる場合の考え方
「価格差が10円の場合は数量を足す」という条件の場合、単純なSUMIFSだけでは対応できません。価格を比較する条件を追加する必要があります。
例えば基準となる価格が100円の場合、「90円以上110円以下の商品を合計する」という条件に置き換えることで計算できます。
具体的には以下のような式になります。
=SUMIFS(C:C,A:A,”おにぎり”,B:B,”>=90″,B:B,”<=110″)
この式では、おにぎりの商品で価格が90円以上110円以下の商品数量を合計します。
価格ごとの集計表を作成する方法
複数の商品を管理する場合は、元データをそのまま計算するより、集計用の表を作成すると管理しやすくなります。
例えば以下のような集計表を作ります。
| 商品名 | 基準価格 | 合計数量 |
|---|---|---|
| おにぎり | 100円 | 4個 |
| パン | 100円 | 2個 |
| おにぎり | 140円 | 9個 |
この場合、基準価格を入力するセルを作り、そのセルを参照する数式にすると、商品や価格が増えても簡単に対応できます。
例えば基準価格がE2セル、商品名がD2セルにある場合は、以下のような式になります。
=SUMIFS($C:$C,$A:$A,D2,$B:$B,”>=”&E2-10,$B:$B,”<=”&E2+10)
この式では、基準価格から10円以内の価格の商品だけを合計できます。
より複雑な条件ならSUMPRODUCT関数も便利
条件が増える場合や、価格差などの計算条件を柔軟に設定したい場合はSUMPRODUCT関数を利用する方法もあります。
例えば、「商品名が一致し、価格差が10円以内なら数量を加算する」といった条件を細かく設定できます。
ただし、SUMPRODUCTは便利な反面、データ量が多い場合は処理速度が低下することがあります。そのため、通常の集計ではSUMIFS関数を優先すると扱いやすくなります。
まとめ
Excelで商品名・価格・数量のデータから条件付きで数量を集計する場合は、SUMIFS関数を使うのが基本です。
同じ商品名と価格を集計するだけならSUMIFSで対応できますが、「価格差が10円以内なら合計する」といった条件では、価格の範囲指定を組み合わせる必要があります。
データ量が増える場合は、基準価格や商品名を入力する集計表を作成し、セル参照を使った数式にすると、職場での在庫管理や売上集計でも使いやすいExcel表を作成できます。


コメント