【Excel】GROUPBY関数の使い方|項目ごとの合計を式1つで。出てこないときの確認・並び替え・小計まで

えっ、まだコピペで作ってる? 毎月の費目別集計(GROUPBY関数) Excel

毎月の経費を、費目ごとに合計する。

UNIQUE関数で費目の一覧を出して、それをコピーして貼り付けて、隣にSUMIF関数を入れて、最後に合計を足す。こういう作り方をしている方は多いと思います。

GROUPBY(グループバイ)関数を使うと、この集計表が数式1つでできます。費目の名前も、費目ごとの金額も、一番下の総合計も、全部その1つの数式から出てきます。費目の一覧を先に用意する必要もありません。

この記事では、基本の集計表を作ったあと、金額の大きい順への並べ替え、部署ごとの小計、1つの部署だけの集計まで順に進めます。

GROUPBY関数が使えるExcel

GROUPBY関数は、Microsoft 365のExcelで使える関数です。

自分のExcelで使えるかは、セルに =GROUP まで打ってみると分かります。候補の一覧に「GROUPBY」が出てくれば使えます。

「GROUPBY」が候補に出てこないとき

  • 買い切り版のExcel(Excel 2021・Excel 2024など)には、GROUPBY関数がありません
  • Microsoft 365でも、Excelが古いままだと出てこないことがあります。「ファイル」→「アカウント」→「更新オプション」から更新してみてください
  • GROUPBYを使ったファイルを、GROUPBYが無いExcelで開くと、セルに #NAME? と出ます。ファイルを渡す相手のExcelにも注意が必要です

例に使う表

10月の経費明細です。A列から順に、日付・部署・費目・内容・金額が並んでいます。見出しが1行目、データは2行目から61行目までの60件です。

A B C D E
1 日付 部署 費目 内容 金額
2〜61 (10月の経費が60件)

これを、費目ごとの合計の表にします。

覚えるのは最初の3つだけ

GROUPBY関数には指定するところが7つありますが、最初に覚えるのは3つだけです。

順番 画面の表示 意味 今回
1つ目 行フィールド 何でまとめるか 費目(C列)
2つ目 値 何を集計するか 金額(E列)
3つ目 関数 どう集計するか 合計(SUM)

「費目でまとめて、金額を、合計する」。これをそのまま順番に入れます。

基本の集計表を作る

結果を出したいセル(今回はG2)を選んで、次のように入力します。

=GROUPBY(C2:C61,E2:E61,SUM)

入力の手順はこうです。

  1. =GROUPBY( と入力する
  2. C2をクリックして、Ctrl+Shift+↓で費目の列を選ぶ
  3. カンマを入れて、E2をクリックして、Ctrl+Shift+↓で金額の列を選ぶ
  4. カンマを入れると関数の候補が出るので、SUMを選ぶ
  5. かっこを閉じてEnter

G列に費目が並び、H列にそれぞれの合計金額が出ます。一番下には総合計も出ています。

合計が合っているか確かめる

元の表の金額の列(E列)の見出しをクリックすると、画面右下に選んだ範囲の合計が表示されます。ここを「ステータスバー」と言います。この数字と、GROUPBYの総合計が同じなら合っています。

合計が表示されていないときは、ステータスバーを右クリックして「合計」にチェックを入れてください。

行を足しても集計に入らないとき

このままだと、ひとつ困ることがあります。

62行目に新しい経費(10月31日・総務部・研修費・15,000円)を足しても、集計表に研修費が出てきません。

数式を見ると、範囲が C2:C61 E2:E61 のように61行目までで止まっているからです。62行目は範囲の外なので、集計されません。データが増えるたびに数式の範囲を直すのでは、せっかくの自動集計が台無しです。

元の表をテーブルにする

ここで使うのが、Excelのテーブルです。

  1. 元の表の中をどこか1つクリックする
  2. Ctrl+Tを押す
  3. 「先頭行をテーブルの見出しとして使用する」にチェックが入っていることを確かめて、OK
  4. 「テーブルデザイン」タブの左端で、テーブル名を「経費明細」に変える(分かりやすくするため)

数式の範囲をテーブルの列に直す

数式のセルをダブルクリックして、C2:C61 の部分を選び直します。C2をクリックしてCtrl+Shift+↓を押すと、範囲が 経費明細[費目] という書き方に変わります。金額の E2:E61 も同じように選び直します。

=GROUPBY(経費明細[費目],経費明細[金額],SUM)

テーブルの列で指定しておくと、テーブルに行が増えたとき、集計の範囲も一緒に広がります。

試しに63行目に「10月31日・企画部・雑費・花代・3,000円」を足すと、今度は数式を直さなくても、集計表に雑費が出てきます。

GROUPBY関数とテーブルを組み合わせるのが、毎月の集計表を作り直さないためのポイントです。

費目ごとの合計を出すだけなら、ここまでで十分使えます。ここから先は、もう少し便利に使いたい方向けです。

合計ではなく平均・件数を出す

3つ目の「関数」を変えると、集計の仕方が変わります。

=GROUPBY(経費明細[費目],経費明細[金額],AVERAGE)
=GROUPBY(経費明細[費目],経費明細[金額],COUNT)

AVERAGEにすると費目ごとの平均、COUNTにすると費目ごとの件数になります。3つ目でカンマを入れたときに出る候補の一覧から選べば、つづりを間違えません。

金額の大きい順に並べ替える

そのままだと、費目は名前の順に並びます。会議や報告に使うなら、金額の大きい順のほうが、どの経費が多いか一目で分かります。

並べ替えは6つ目で指定します。

=GROUPBY(経費明細[費目],経費明細[金額],SUM,,,-2)

SUM のあとにカンマが3つ続いているのは、4つ目と5つ目を飛ばしているからです。使わないところは、カンマだけ打てば飛ばせます。

6つ目に入れる数字の決まりはこうです。

  • 数字は、集計結果の何列目を基準にするか(1列目が費目、2列目が金額)
  • プラスなら小さい順(昇順)、マイナスなら大きい順(降順)

金額(2列目)の大きい順にしたいので、-2 です。2 にすると、金額の小さい順になります。

部署ごと・費目ごとにまとめる

費目ごとの合計で、どの費目にお金を使っているかは分かりました。次は、それをどの部署が使っているかです。

1つ目の「何でまとめるか」に、部署と費目の2列をまとめて指定します。

=GROUPBY(経費明細[[部署]:[費目]],経費明細[金額],SUM)

B2からC2までを選んでCtrl+Shift+↓を押すと、この書き方になります。部署ごとに、費目別の金額が並びます。

1列を指定すれば費目ごと、2列を指定すれば「部署と費目の組み合わせ」ごと。仕組みは同じです。

※ この [[部署]:[費目]] は、隣り合った列をまとめて指定する書き方です。

部署ごとの小計を出す

この表だと、営業部が全体でいくら使ったかが分かりません。そこで、5つ目の「総計詳細」で小計を出します。

=GROUPBY(経費明細[[部署]:[費目]],経費明細[金額],SUM,,2)

5つ目を 2 にすると、総計に加えて部署ごとの小計も出ます。5つ目を省略したときや 1 にしたときは、一番下の総計だけです。

1つの部署だけを集計する

最後に、全部の部署ではなく、総務部だけの集計表がほしいときです。

7つ目に、残したいデータの条件を書きます。

=GROUPBY(経費明細[[部署]:[費目]],経費明細[金額],SUM,,1,,経費明細[部署]="総務部")

経費明細[部署]="総務部" で、部署が総務部の行だけが集計されます。1つの部署だけなら小計は要らないので、5つ目は 1 にしています。

GROUPBY関数は、集計するだけでなく、集計する前にデータを絞り込むこともできます。

7つの指定の一覧

順番 画面の表示 意味 この記事での使い方
1つ目 行フィールド 何でまとめるか 経費明細[費目]、経費明細[[部署]:[費目]]
2つ目 値 何を集計するか 経費明細[金額]
3つ目 関数 どう集計するか SUM・AVERAGE・COUNT
4つ目 フィールドヘッダー 見出しの扱い 使っていない
5つ目 総計詳細 総計・小計 1(総計だけ)・2(総計と小計)
6つ目 並べ替え 並べる順番 -2(金額の大きい順)
7つ目 フィルター 集計する行の条件 経費明細[部署]=”総務部”

使わないところは、カンマだけ打って飛ばします。

SUMIF関数・ピボットテーブルとの違い

これまで、こうした集計はSUMIF関数やピボットテーブルで作るのが定番でした。もちろん、今でもそれで作れます。

SUMIF関数は、UNIQUE関数と組み合わせると、費目の一覧も自動にできます。

=UNIQUE(FILTER(C2:C100,C2:C100<>""))
=SUMIF(C2:C100,H2#,E2:E100)

1つ目で空白を除いた費目を重複なしで並べ(H2に入力)、2つ目でその費目ごとに合計しています。H2# は、H2から下に広がった(スピルした)費目全部を指す書き方です。ただ、この形だと総合計は別に作る必要があります。

ピボットテーブルは、費目も合計も出せます。ただ、元のデータを変えたり足したりしたときは、「更新」を押したり、データの範囲を変えたりする手間がかかります。ドラッグで見方をいろいろ変えたいときには便利です。

GROUPBY UNIQUE+SUMIF ピボットテーブル
数式の数 1つ 2つ以上 数式は使わない
総合計 自動で出る 別に作る 自動で出る
データを足したとき 自動(テーブルなら) 自動(範囲を広めにとれば) 更新が必要
使えるExcel Microsoft 365 Excel 2021以降・365 ほとんどのExcel

まとめ

並べ替え、部署ごとの小計、絞り込みまで紹介しましたが、まず覚えるのは最初の3つです。

  • 何でまとめるか
  • 何を集計するか
  • どう集計するか

そして、元のデータをテーブルにしておくこと。これで、行が増えても集計表を作り直さずに済みます。毎月の経費集計や売上集計のように、同じ作業を繰り返している方は、ぜひ試してみてください。

実際に入力していく様子は、動画で見ていただくと分かりやすいです。練習用のファイルも、動画の概要欄からお渡ししています。

【Excel】集計表の作り方|GROUPBY関数なら、項目ごとの合計が式1つで自動化
https://youtu.be/E4u6zB5_KXE

あわせて読みたい記事です。

ほかのExcelのつまずきも、1本ずつ動画にしています。

▼チャンネル登録はこちら
https://www.youtube.com/@pc7663