月末に「今月どの商品がいくら売れた?」を、売上表を見ながら電卓で足していませんか。
前回の「月別×担当別の集計」の続きとして、今回は「商品ごと×月ごと」の表を、式だけで自動で作る方法を紹介します。売上の一覧に記録を足していくだけで、表が自動で埋まります。コードは使いません。
【用意する表】
1枚目のシート「売上」に、1行に1件ずつ記録します(列の名前や中身はお仕事に合わせて読み替えてください)。
・A列:日付
・B列:担当
・C列:商品
・D列:金額
2枚目のシート「集計」を作ります。
・B1から右に、集計したい月の「1日」の日付を入れる(例:2026/09/01、2026/10/01、2026/11/01)
・月の右隣(この例ではE1)に「合計」
【1. 商品の一覧を自動で出す】
集計シートのA2に、次の式を貼り付けます。
=SORT(UNIQUE(FILTER(売上!C2:C,売上!C2:C<>"")))
売上シートのC列から商品名を重ならないように取り出し、並べ替えて表示します。新しい商品が売上に入ると、一覧にも自動で増えます。
A3から下は空けておいてください(何か入っていると一覧を出せず、エラーになります)。
【2. 商品ごと×月ごとの合計】
B2に、次の式を貼り付けます。
=SUMIFS(売上!$D:$D,売上!$C:$C,$A2,売上!$A:$A,">="&B$1,売上!$A:$A,"<"&EDATE(B$1,1))
「商品がA2と同じ」で「日付がB1の月」の金額を足す式です。B2をコピーして、右と下に貼り付けると表が埋まります。
$A2 は「列はAのまま」、B$1 は「行は1のまま」という意味で、コピーしてもずれません。
【3. 商品ごとの合計】
E2に、次の式を貼り付けて、下にコピーします。
=SUMIF(売上!$C:$C,$A2,売上!$D:$D)
売上シート全部の合計です。表に出している月だけの合計にしたいときは、=SUM(B2:D2) にしてください。
【4. 1つの式で表を出す(Googleスプレッドシートだけ)】
QUERY関数を使うと、商品×月の表を1つの式で出せます(集計シートの空いている場所、例えばG1に)。
=QUERY(売上!A1:D,"select C, sum(D) where A is not null group by C pivot month(A)+1",1)
見出しには月の数字(9、10、11)が並びます。売上がない月は空欄になります。
・月の数字だけで分けるので、年をまたぐデータ(去年の10月と今年の10月)は合計されてしまいます。1年分ずつ使うか、1〜3の式を使ってください
・ExcelにはQUERY関数がありません。Excelの方は1〜3の式を使ってください(UNIQUE・SORT・FILTERはExcel 2021以降・Microsoft 365で使えます。Excelでは「C2:C」を「C2:C1000」のように最後の行まで書いてください)
【確かめた結果】
次のサンプルで、式の答えを確かめています(Googleスプレッドシートで計算)。
・9/30 商品A 1,000円、10/1 商品A 2,000円、10/15 商品B 3,000円、10/31 商品B 4,000円、11/1 商品A 5,000円、11/20 商品B 6,000円
・商品A:9月1,000円・10月2,000円・11月5,000円(合計8,000円)
・商品B:9月0円・10月7,000円・11月6,000円(合計13,000円)
【うまくいかないとき】
・1の式で #REF! と出る:A3から下に何か入っていないか確認してください(一覧を出す場所が空いていないと出ます)
・0になる:売上シートの日付が「文字」になっていないか(左寄せになっていたら文字です)、集計シートの1行目が月の「1日」の日付になっているかを確認してください
・同じ商品が2つに分かれる:「商品A」と「商品A 」(後ろに空白)のように、名前が少しでも違うと別の商品になります。売上シートの名前をそろえてください
【自分で作るのが大変なときは】
「毎月この集計を自動でメールしたい」「フォームの回答から直接集計したい」など、お店に合わせた作成は、こちらのサービスで承っています。
▶ GAS×スプレッドシートで手作業を自動化します(作業1つから・見積り無料)