月末の売上集計、毎回手で足していませんか?スプレッドシートで月別・カテゴリ別の集計を「ボタン1つ」にする方法

月末の売上集計、毎回手で足していませんか?スプレッドシートで月別・カテゴリ別の集計を「ボタン1つ」にする方法

記事
ビジネス・マーケティング
月末になると売上の表を開いて、月ごと・カテゴリごとの合計を出している。

そんな作業をしていませんか?

・フィルタでカテゴリを1つずつ絞り込み、合計を書き写す
・SUM の範囲を選び直していて、たまに1行ずれる
・新しいメニューを始めた月に、集計表へ足すのを忘れる

この記事では、売上の明細から「月別・カテゴリ別の集計表」を作る方法を、関数でできるものから順にご紹介します。
後半では、GAS(Google Apps Script)で「明細を入れたら、ボタンを押すだけ」にした見本もお見せします。

例に使う「売上明細」シートは、A列が日付、B列が品目、C列がカテゴリ、D列が金額で、1行目が見出しです。ご自分の表では、シート名と列を読み替えてください。

方法1:SUMIFS で「月×カテゴリ」の表を作る


集計用のシートを1枚追加して、次のように準備します。

・B1 から右へ、カテゴリの名前を並べる(カフェ、テイクアウト、ドリンク、ランチ)
・A2 から下へ、各月の1日を日付で入れる(2026/07/01、2026/08/01、2026/09/01)

そして B2 に、次の数式を入れます。

=SUMIFS('売上明細'!$D:$D, '売上明細'!$C:$C, B$1, '売上明細'!$A:$A, ">="&$A2, '売上明細'!$A:$A, "<"&EDATE($A2, 1))

「カテゴリが1行目の名前と同じで、日付がその月の1日から翌月の1日の前まで」の行の金額を足す、という意味です。EDATE($A2, 1) は「A2 の1か月後の日付」です。
「$」のついた部分はコピーしてもずれないので、B2 をコピーして表の範囲に貼れば埋まります。月ごとの合計と総計は、SUM で足します。

カテゴリの名前が明細と1字でも違うと(後ろに空白が入っている、など)、そのマスは 0 になります。数字が合わないときは、まずここを見てください。

方法2:ピボットテーブルで作る


数式を書かずに作るなら、ピボットテーブルです。

1. 「売上明細」の表のどこかを選び、メニューの「挿入」→「ピボット テーブル」を押す。データ範囲には、見出しを含む表全体(例: 売上明細!A1:D91)が自動で入るので確かめて、「新しいシート」→「作成」
2. 右の編集画面で、「行」に日付、「列」にカテゴリ、「値」に金額を追加する(集計は SUM)
3. できたピボットテーブルの、日付が並んでいるセルを右クリック →「ピボット日付グループを作成」→「年-月」

日付が月ごとにまとまり、総計の行と列も自動でつきます。

方法3:QUERY で、数式1つで表ごと作る


空いているシートの A1 に入れます(右と下は空けておきます)。

=QUERY('売上明細'!A1:D, "select year(A), month(A)+1, sum(D) where A is not null group by year(A), month(A)+1 pivot C label year(A) '年', month(A)+1 '月'", 1)

・group by … 年と月ごとにまとめる
・pivot C … C列(カテゴリ)の値を横に並べる
・month(A)+1 … QUERY の month は1月を「0」と数えるので、1を足す

明細に新しい月やカテゴリが出てくると、行や列も自動で増えます。

関数で集計するときの注意


関数の表は手軽ですが、使い続けると、次のようなところで困ることがあります。

・SUMIFS の表は、月やカテゴリが増えるたびに行・列を書き足す。足し忘れたカテゴリは、合計にも入らない
・ピボットテーブルは、作ったときの範囲より下に足した行が入らないことがある(範囲を広げ直す)
・QUERY は式が読みにくく、あとで直せる人が限られる。合計の行・列もつかない
・金額の欄に「未定」などの文字が入った行は、どの方法でも、何も表示されずに集計から外れる
・集計のシートをうっかり触ると、数式が消えたり、ずれたりする

GASで「明細を入れて、ボタンを押すだけ」にする


表を書き足す手間や、数式が消える心配を減らしたいときは、GAS(Googleのサービスに付いている自動化のしくみ)で集計表を作る方法もあります。
見本として、架空のカフェの「売上明細」から「月別集計」シートを作るものを用意しました。

画像1_ボタン.png

画像2_月別集計.png


・「売上明細」シートの「今すぐ集計する」ボタンを押すと、「月別集計」シートが作り直され、画面の右下に「集計しました」と出る
・メニューから1回設定すれば、毎朝7時台にも自動で集計し直す
・月やカテゴリが増えれば、行・列も自動で増える。合計の列と総計の行もつく
・日付や金額が読めない行は集計に入れず、その件数を「最終更新」の時刻と一緒に表示する

集計の表には数式が入っていないので、うっかり消しても、次に押せば作り直されます。

ただし、ボタンが使えるようになるまでに、最初に1回だけ設置が必要です。

・コードを、メニューの「拡張機能」→「Apps Script」に貼り付けて保存する
・初めて動かすときに、このコードにスプレッドシートを扱わせてよいかを承認する(個人が作ったコードで、Googleの審査は受けていないため、「このアプリは Google で確認されていません」という注意の画面が出ます)
・「挿入」→「図形描画」でボタンの形を描き、「スクリプトを割り当て」で集計の処理につなぐ
・毎朝の自動集計を使うなら、メニューの「毎朝の自動集計を有効にする」を1回押す

どれも、あなたのGoogleアカウントで、ご自身で行います。

できないこと・使う前に知っておきたいこと


・明細の入力はなくなりません(集計するのは、シートに入っている明細です)
・集計の表は、ボタンを押したときか、毎朝7時台の時点の内容です。明細を直したら、もう一度押します(関数のように、すぐには変わりません)
・「月別集計」シートは毎回作り直すので、そこに手で書いたメモは消えます
・日付・カテゴリ・金額の列の位置は、コードの最初で決めています。列を入れ替えたら設定も直します
・ボタンはパソコンのブラウザで押します(スマホのアプリでは、押しても集計は動きません)
・Googleスプレッドシート用です(Excelでは動きません)

自分でやるのが大変なときは


・今の売上表で、月別・カテゴリ別の集計をボタンで出したい
・SUMIFS などで作った集計表の数字が、どこかで合わなくなった
・店舗別・担当者別など、見本とは違う分け方で集計したい

こうしたご相談は、ココナラの出品「スプレッドシートの集計・転記をGASで自動化します」で受け付けています(できることの例②「売上の月別・カテゴリ別の自動集計」です)。
月別の集計1本なら、基本料金(3,000円)の範囲でご相談いただける内容です。フォームの受付など別の自動化と一緒なら、有料オプション「流れの追加」(+2,000円)で2本目を作ります。

・作ったコードは、コメントつきですべてお渡しし、設置の手順書(ボタンの置き方も含みます)と操作説明書をおつけします
・パスワードやスプレッドシートの共有は不要です
・正式な納品の前に2日間の確認期間があり、あなたのシートで動かして確かめていただけます

設置に不安がある方向けに、確認期間中に1手順ずつご案内する「設置サポート」(+1,000円)もあります。

まずはメッセージで、今の表の形と、やりたいことを教えてください。
(実際のデータではなく、今の表のスクリーンショットか、列の名前の一覧で大丈夫です。お客様のお名前などは隠してください)



サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す