商品別売上を集計して、数字を確かめる

LWP | 商品別売上を集計して、数字を確かめる

商品別売上を集計して、数字を確かめる

ココさんとアユさんが、30件の受注から6商品の売上を作り、並べ替えと検算まで確かめます。

ストーリー

商品別の売上を知りたいアユさんに、ココさんが集計表を見せました。「合計も一致しています」と言うココさん。アユさんは「商品名と金額の組み合わせも確かめたいですね」と応じます。二人で、表を作るところから数字を説明できるところまで進めます。

使うのは、Googleスプレッドシートの通常のセル範囲です。架空の受注30件を使い、末尾に貼付用データを用意しました。式は英語の関数名と半角カンマで記載しています。説明の順番は「表の構造→式の意味→操作→結果の確認」です。

1 30件の明細を、6商品の集計へ

明細では一行が一件の受注、集計では一行が一商品を表します。

図1|明細では一行が一件の受注、集計では一行が一商品を表します。

集計表の役割は、同じ商品に分かれている金額をまとめることです。今回の「受注」シートは、2026年4月の受注30件を並べた表です。同じ商品が別の日や別の得意先へ売れた場合も、それぞれ一行として記録されています。「商品別分析」シートでは、その30行を6商品の売上へまとめます。

先にそろえたいのは、何を同じものとして扱うかです。この例では商品名が統一され、商品コードと商品名が一対一に対応しているため、F列の商品名を条件にJ列の金額を合計できます。実務で同じ商品名に別の商品コードがある場合は、商品名だけでまとめる設計をそのまま使わず、商品コードを集計の軸にします。

売上が一番大きい商品は「餃子(冷凍)」の426,600円です。ただし、数字が大きい順の表ができただけでは完成ではありません。集計対象が同じか、商品と金額が対応しているか、元の明細へ戻って説明できるかまでを、ココさんとアユさんが順に確かめます。

2 集計の前に、対象と基準値をそろえる

対象期間・件数・金額の数値件数・総額を、集計前の基準にします。

図2|対象期間・件数・金額の数値件数・総額を、集計前の基準にします。

入力表の列は、Aが受注No、Bが受注日、C・Dが得意先コードと得意先名、E・Fが商品コードと商品名、Gが受注数、Hが入り数、Iが単価、Jが金額、Kが配送区分、Lが担当営業です。金額は「受注数×入り数×単価」で、一行目には見出し、2~31行目には30件の明細を置きます。会社名・人名を含め、ここで使うのは書籍の架空データです。

新しいスプレッドシートへ「受注」「商品別分析」「明細確認」の三つのシートを作り、末尾のデータを「受注」へ貼り付けます。地域は日本を想定し、B列を日付、G~J列を数値として扱います。この記事は4月分だけが入った表を集計するので、SUMIFの式には日付条件を入れていません。他の月を混ぜれば、その月の金額も集計されます。

受注Noの入力件数は30、金額の数値件数は30、総額は1,400,880円です。COUNTAで30件と出ても、受注Noの重複がないことまでは分かりません。また、見た目が数字でも文字列ならCOUNTの対象にならないため、金額の数値件数も別に調べます。今回はコピー前後でこの三つが一致するかを確認しましょう。COUNT、COUNTA

入力先:受注!N2

数式例 受注シートのN2・N3・N4へ、一行ずつ入力

01

=COUNTA(A2:A31)

02

=COUNT(J2:J31)

03

=SUM(J2:J31)

数式の説明

上からN2が30、N3が30、N4が1400880です。N1には「入力確認」などの見出しを置けます。

3 商品一覧を、最初に登場した順で作る

UNIQUEの結果はA2からA7へ展開します。六つのセルへ同じ式を入れる必要はありません。

図3|UNIQUEの結果はA2からA7へ展開します。六つのセルへ同じ式を入れる必要はありません。

「商品別分析」のA1へ「商品名」、B1へ「商品別売上」と入力します。A2へUNIQUEの式を一つ入れると、受注のF2:F31から重複を除いた商品名が表示されます。商品名の一覧を手入力しないので、元の表と異なるつづりを新たに作ってしまう手間や間違いを減らせます。

この例のA2からA7は、四川麻婆豆腐の素、餃子(冷凍)、小籠包(冷凍)、回鍋肉の素、担々麺スープ、エビチリソースの順です。UNIQUEは元の範囲で最初に現れた順を保ちます。書籍ではこの結果をSORTで商品名順に並べていますが、この記事では明細との対応を追いやすいよう、まず登場順にし、売上順への並べ替えは後で独立して行います。UNIQUE

A3:A7は式の結果が広がる場所なので、先に文字や別の式を入れず空けておきます。見た目が同じ商品が二つ出たら、末尾の空白などが混ざっていないか元データを確認します。UNIQUEは表記を統一する処理ではなく、異なる値を見つける処理です。表記揺れの修正が必要な場合は、どの商品を同一と扱うかを決めてから行います。

入力先:商品別分析!A2

数式例 商品一覧を作る

01

=UNIQUE(受注!F2:F31)

数式の説明

A2:A7へ6商品が展開します。式を入力するのはA2だけです。

4 SUMIFの三つの引数を、表の列に対応させる

商品名を探す範囲と、足し合わせる金額の範囲は、同じ明細行にそろえます。

図4|商品名を探す範囲と、足し合わせる金額の範囲は、同じ明細行にそろえます。

一商品分の売上を求めるとき、SUMIFは商品名の列を調べ、条件に合う行の金額を加えます。三つの引数は順に「条件を調べる範囲」「条件」「合計する範囲」です。今回なら、受注のF2:F31を調べ、商品別分析のA2と一致する行について、受注のJ2:J31を合計します。

A2の四川麻婆豆腐の素に該当するのは、O001・O007・O013・O018・O021・O024の6件です。60,000+72,000+76,800+72,000+57,600+84,000で422,400円になります。「金額が入っているからJ列を足す」だけでは不十分で、F列の各行とJ列の同じ行が一件の受注として結び付いていることが根拠です。

F2:F31とJ3:J32のように範囲を一行ずらすと、ある商品の名前に別の明細の金額を対応させてしまいます。先頭行と末尾行がそろっているかを式で見ます。結果が0なら、売上がないと決める前に、A2とF列の商品名、見えない空白、J列の数値化、対象範囲を確認しましょう。SUMIF

入力先:商品別分析!B2

数式例 商品別売上を求める

01

=SUMIF(受注!$F$2:$F$31,$A2,受注!$J$2:$J$31)

数式の説明

B2は422400です。次の図で参照を確かめてから、B7までコピーします。

5 コピーで動かすセルと、固定する範囲を分ける

集計対象の30行は固定し、条件として読む商品名だけを次の行へ進めます。

図5|集計対象の30行は固定し、条件として読む商品名だけを次の行へ進めます。

B2の式をB3へコピーしたとき、次に集計したい商品名はA3にあります。一方、調べる元データは次の商品でも同じ30行です。この違いを式へ書いたものが、条件の「$A2」と、範囲の「$F$2:$F$31」「$J$2:$J$31」です。

$A2は列Aを固定し、行番号はコピー先に合わせて変わります。下へコピーすると$A3、$A4となり、同じ行の商品名を読みます。範囲側は列と行の両方を固定するので、どの商品でも受注の2~31行を見ます。下方向のコピーだけならA2でも列は動きませんが、この式は条件を読む列も明示して固定しています。

B2をB7までコピーし、B3の餃子(冷凍)が426,600円、B7のエビチリソースが58,080円になることを確認します。値だけでなく、B3と最後のB7の式も見ましょう。コピー前に範囲を固定し忘れると、後ろの行ほど調べる明細がずれ、集計漏れや誤集計の原因になります。

入力先:商品別分析!B3 と B7

数式例 コピー後の式を比較する

01

=SUMIF(受注!$F$2:$F$31,$A3,受注!$J$2:$J$31)

02

=SUMIF(受注!$F$2:$F$31,$A7,受注!$J$2:$J$31)

数式の説明

一行目がB3、二行目がB7の式です。範囲は同じで、条件の行番号だけが変わります。

6 商品と売上を、一つの行として並べ替える

SORTへ商品名と売上の両列を渡し、売上を基準に行ごと並べ替えます。

図6|SORTへ商品名と売上の両列を渡し、売上を基準に行ごと並べ替えます。

商品別売上ができたら、D1に「商品名」、E1に「売上」と入力します。D2のSORTはA2:B7の二列全体を受け取り、その中の二列目、つまり商品別売上を基準に並べ替えます。FALSEは降順です。結果はD2:E7に広がるので、この範囲も空けておきます。SORT

一番上は餃子(冷凍)426,600円、二番目は四川麻婆豆腐の素422,400円、一番下はエビチリソース58,080円になります。元のA列は登場順のままです。A:Bを集計用、D:Eを閲覧用と分けると、計算した表を残して順位の表を作れます。

金額だけを並べ替え、商品名を元の順番に残すと、名前と金額の組み合わせが変わります。この誤りは合計では見つからないことがあります。並べ替える単位は「金額の列」ではなく、「商品名と金額でできた一行」と捉えましょう。売上の多さは利益の多さを直接表すものではない点も、結果を使うときの前提です。

入力先:商品別分析!D2

数式例 売上の大きい順の表を作る

01

=SORT(A2:B7,2,FALSE)

数式の説明

D2:E7へ二列・6行の表が展開します。A2:B7自体の並びは変更されません。

7 元データと集計の合計を引き算する

差額0を確認し、差があれば入力範囲・集計範囲・商品一覧へ戻ります。

図7|差額0を確認し、差があれば入力範囲・集計範囲・商品一覧へ戻ります。

集計の検算は、同じ対象を二つの経路で足した結果を比べることから始めます。元データのJ2:J31の合計と、商品別に集計して並べ替えたE2:E7の合計が同じなら、差は0です。検算欄はG2に「商品別合計」、G3に「元データとの差」と書き、その右のH2・H3へ式を入れます。

書籍では順位表の直下に検算を置いていますが、この記事では商品が増えたときに出力範囲と重なりにくい右側へ分けました。H2は1,400,880円、H3は0です。差額が出たら、それを打ち消す数値を集計表へ手入力するのではなく、集計漏れや範囲のずれを探します。

たとえば、元データは30件なのに集計式を30行目までで止めると、31行目のO030、餃子(冷凍)46,800円が漏れます。その場合の集計合計は1,354,080円、元データとの差は46,800円です。この例では差額から最後の一件へたどれますが、実務では複数の誤りが相殺されることもあるため、差額が0になっただけで確認を終えません。SUM

入力先:商品別分析!H2 と H3

数式例 検算欄の二つの式

01

=SUM(E2:E7)

02

=SUM(受注!J2:J31)-H2

数式の説明

H2が1400880、H3が0です。二行をH2から下へ貼り付けても入力できます。

8 合計一致の次に、商品別の内訳を確かめる

合計は総量の確認です。商品と金額の対応は、個別の明細で別に確認します。

図8|合計は総量の確認です。商品と金額の対応は、個別の明細で別に確認します。

合計が合っていても、商品別の売上が正しいとは限りません。餃子(冷凍)の426,600円と、四川麻婆豆腐の素の422,400円を取り違えても、二つを足した金額は変わりません。総額1,400,880円も差額0も、そのままです。しかし、商品別にはそれぞれ4,200円の誤りがあります。

そこで、順位表の上位商品について元の受注へ戻ります。餃子(冷凍)の受注NoはO002・O008・O014・O019・O022・O025・O030の7件です。その金額54,000、72,000、57,600、64,800、50,400、81,000、46,800を足すと426,600円になります。集計表の値だけをもう一度足すのではなく、元データから同じ商品を選び直すことが確認になります。

下位の商品も一つ確かめると、一覧の終わりやコピー範囲の不足を見つけやすくなります。エビチリソースはO006・O012・O029の3件で、18,480+18,480+21,120=58,080円です。この見本では6商品の内訳をすべて照合できます。件数が多い実務の表でも、総額の確認と個別の対応確認は役割を分けて実施します。

9 一件の大口受注と、商品の売上順位を区別する

明細の順位と商品別合計の順位は、一行の意味が異なる別の見方です。

図9|明細の順位と商品別合計の順位は、一行の意味が異なる別の見方です。

一件の受注として最大なのは、O024の四川麻婆豆腐の素84,000円です。一方、商品別の合計で最大なのは餃子(冷凍)426,600円です。この二つは矛盾しません。前者は一件の大口受注、後者は期間内に同じ商品を足し合わせた結果を比べています。

「明細確認」シートのA1へ下の式を入れると、受注の一行目の見出しと、金額の大きい順に並べた30件の明細が縦につながります。SORTの10はA:Lの中で十列目のJ列を指し、VSTACKは見出し行と明細を縦方向へ連結します。A1:L31全体を空けてから入力してください。VSTACK

上からO024・84,000円、O025・81,000円、O013・76,800円の順になります。大きな数字を見つけたら、その一行が何を表すのかを読み、日付・商品・得意先などと合わせて確認します。商品別の順位が変わった理由を考えるときも、期間を通じて件数が多いのか、一部に大口受注があるのかを分けて見られます。

入力先:明細確認!A1

数式例 金額順に明細を確認する

01

=VSTACK(受注!A1:L1,SORT(受注!A2:L31,10,FALSE))

数式の説明

一行目は見出し、2~31行目は金額の降順の明細です。受注シートの元の順序は変えません。

10 明細や商品が増えたら、参照と出力を見直す

固定範囲の見本を自分の表へ使うときは、入力行数と商品数の二つを更新します。

図10|固定範囲の見本を自分の表へ使うときは、入力行数と商品数の二つを更新します。

この記事の式は、入力30件・商品6種類が見えるよう固定範囲で書いています。そのため、受注の32行目へ明細を追加しても、2~31行を参照した式には入りません。UNIQUE、SUMIF、元データの合計、件数確認、明細確認のSORTなど、元表を見る範囲をまとめて見直します。

試しに、同じ4月の餃子(冷凍)を18,000円追加したと考えます。商品数は6のままですが、入力は31件になります。参照末尾を32行目へ更新すると、餃子の合計は444,600円、全体は1,418,880円です。商品別分析のA2:B7とD2:E7は6商品分なので、そのまま使えます。

新しい商品を一つ追加する場合は事情が違います。UNIQUEの結果は7商品へ増えますが、B列へコピーしたSUMIFの式は自動で増えません。B8まで式をコピーし、SORTをA2:B8、商品別合計をE2:E8へ広げる必要があります。A・D・E列の展開先も空けます。入力行数だけでなく、出力する商品の数も確認するのが、この見本を自分の仕事へ使う際の要点です。

空白や別月を含む列全体を無条件に渡す方法へ変えると、対象範囲の意味も変わります。まずは対象期間と集計単位を保った小さな表で確かめてから、運用に合う範囲管理へ進みましょう。

まとめ

商品別売上を作ると、明細一件の表から、一商品を単位にした表へ変わります。商品一覧はUNIQUE、条件に合う金額の合計はSUMIF、売上順の表示はSORTという役割を分けると、それぞれの式を読む理由がはっきりします。

完成の目印は順位表の見た目だけではありません。対象期間、入力件数、合計の差、商品と金額の対応を確かめ、元の明細に戻って説明できるところまでを一組にします。

今回の仕掛け

A:Bに集計用の表、D:Eに売上順の表、G:Hに検算欄を置きました。入力、集計、表示、確認の役割を分けることで、どこを直せばよいかを追いやすくしています。式の出力が広がる場所には、手入力のメモや別の計算を置きません。

貼り付けて試す30件のデータ

新しいシートを「受注」と名付け、次の二つのデータをA1とF1へそれぞれ貼り付けます。二つとも同じ30件の並びです。Wordではコード欄だけを選択し、左側の行番号はコピーしません。タブで列に分かれるデータです。一列に入る場合は、貼り付けた範囲を選び、[データ]の[テキストを列に分割]で区切り文字の自動検出を試し、左側が5列、右側が7列になるか確認します。テキストを列に分割

見出しを含む31行になり、A2がO001、A31がO030、F2が四川麻婆豆腐の素、F31が餃子(冷凍)なら、左右の並びを確認できます。J2は60000、J31は46800です。貼り付けた日付が日付として扱われ、金額が数値として扱われることを確かめてから、本文の式へ進んでください。

入力先:受注!A1

サンプルコード 受注データの左側 A~E列

01

受注No	受注日	得意先コード	得意先名	商品コード

02

O001	2026/04/01	C01	王華商店	P01

03

O002	2026/04/01	C02	金龍飯店	P02

04

O003	2026/04/02	C03	東方食品	P03

05

O004	2026/04/02	C04	福満楼	P04

06

O005	2026/04/02	C05	港町中華	P05

07

O006	2026/04/04	C01	王華商店	P06

08

O007	2026/04/04	C02	金龍飯店	P01

09

O008	2026/04/07	C03	東方食品	P02

10

O009	2026/04/07	C04	福満楼	P03

11

O010	2026/04/07	C05	港町中華	P04

12

O011	2026/04/07	C01	王華商店	P05

13

O012	2026/04/09	C02	金龍飯店	P06

14

O013	2026/04/10	C03	東方食品	P01

15

O014	2026/04/10	C04	福満楼	P02

16

O015	2026/04/14	C05	港町中華	P03

17

O016	2026/04/14	C01	王華商店	P04

18

O017	2026/04/14	C02	金龍飯店	P05

19

O018	2026/04/16	C03	東方食品	P01

20

O019	2026/04/18	C04	福満楼	P02

21

O020	2026/04/21	C05	港町中華	P03

22

O021	2026/04/21	C01	王華商店	P01

23

O022	2026/04/21	C02	金龍飯店	P02

24

O023	2026/04/21	C03	東方食品	P03

25

O024	2026/04/22	C04	福満楼	P01

26

O025	2026/04/24	C05	港町中華	P02

27

O026	2026/04/24	C01	王華商店	P03

28

O027	2026/04/27	C02	金龍飯店	P04

29

O028	2026/04/27	C03	東方食品	P05

30

O029	2026/04/29	C04	福満楼	P06

31

O030	2026/04/30	C05	港町中華	P02

入力・概要

先頭行は見出し、続く30行が明細です。二つの表の行順をそろえて貼り付けます。

入力先:受注!F1

サンプルコード 受注データの右側 F~L列

01

商品名	受注数	入り数	単価	金額	配送区分	担当営業

02

四川麻婆豆腐の素	50	12	100	60000	通常	田中

03

餃子(冷凍)	30	10	180	54000	翌日	佐藤

04

小籠包(冷凍)	25	10	180	45000	通常	鈴木

05

回鍋肉の素	20	12	100	24000	通常	田中

06

担々麺スープ	10	10	150	15000	翌日	佐藤

07

エビチリソース	14	12	110	18480	通常	鈴木

08

四川麻婆豆腐の素	60	12	100	72000	通常	田中

09

餃子(冷凍)	40	10	180	72000	通常	佐藤

10

小籠包(冷凍)	30	10	180	54000	翌日	鈴木

11

回鍋肉の素	24	12	100	28800	通常	田中

12

担々麺スープ	12	10	150	18000	通常	佐藤

13

エビチリソース	14	12	110	18480	翌日	鈴木

14

四川麻婆豆腐の素	64	12	100	76800	通常	田中

15

餃子(冷凍)	32	10	180	57600	通常	佐藤

16

小籠包(冷凍)	35	10	180	63000	翌日	鈴木

17

回鍋肉の素	22	12	100	26400	通常	田中

18

担々麺スープ	11	10	150	16500	通常	佐藤

19

四川麻婆豆腐の素	60	12	100	72000	翌日	鈴木

20

餃子(冷凍)	36	10	180	64800	通常	田中

21

小籠包(冷凍)	30	10	180	54000	通常	佐藤

22

四川麻婆豆腐の素	48	12	100	57600	通常	鈴木

23

餃子(冷凍)	28	10	180	50400	通常	田中

24

小籠包(冷凍)	22	10	180	39600	通常	佐藤

25

四川麻婆豆腐の素	70	12	100	84000	翌日	鈴木

26

餃子(冷凍)	45	10	180	81000	通常	田中

27

小籠包(冷凍)	38	10	180	68400	通常	佐藤

28

回鍋肉の素	18	12	100	21600	通常	鈴木

29

担々麺スープ	13	10	150	19500	翌日	田中

30

エビチリソース	16	12	110	21120	通常	佐藤

31

餃子(冷凍)	26	10	180	46800	通常	鈴木

入力・概要

先頭行は見出し、続く30行が明細です。二つの表の行順をそろえて貼り付けます。

結果

受注のN2:N4が順に30、30、1400880となることを確認します。商品別分析ではA2:A7が6商品、B2が422400、B3が426600、D2が餃子(冷凍)、E2が426600、H3が0になります。明細確認のA2はO024、J2は84000です。

読むポイント

コピーした数値だけで確認せず、式の参照先も見ます。入力表の行数が増える場合と、商品の種類が増える場合では、直す場所が異なります。まずこの30件で結果をそろえてから、実際の表の列、範囲、期間に合わせて変更してください。

出典メモ

元になった書籍は『ちゃんとわかる Googleスプレッドシート』V044(2026年10月6日版)です。第10章10.3「商品別売上を集計する」の10.3.1・10.3.2を中心に、10.2の表の構造と30件の架空データ、集計前の確認条件を組み合わせました。商品一覧を登場順にすること、検算を右側へ置くこと、誤集計の比較と行追加の説明は、この記事で理解しやすいように編集しています。

関数・操作は、本文中にリンクしたGoogle公式ヘルプのUNIQUE、SUMIF、SORT、VSTACK、COUNT、COUNTA、SUM、テキストの列分割を参照しています。

Copyright © 2026 LWP 山中 一弘

本資料は、出典を明記いただければ、商用・非商用を問わず、ご自由に複製・改変・再配布していただけます。なお、著作権表示は改変せず、そのまま記載してご利用くださいますようお願いいたします。