部門別の売上データを行と列と値で自由に組み替えたいと思ったことはありませんか。ピボットテーブルやQUERY関数を使えば、集計の軸を簡単に切り替えられます。本記事では、行・列・値を自在に入れ替えて集計する具体的な操作方法を解説します。これを読めば、動的なレポート作成がスムーズになるでしょう。
【要点】ピボットテーブルとQUERY関数で集計軸を自由に切り替える方法
- ピボットテーブルエディタの行・列・値のドラッグ操作: ドラッグ&ドロップで軸を入れ替え、集計方法も変更できます。
- QUERY関数のselect句とpivot句: 行・列・値をSQLライクに指定して集計結果を得られます。
- 値フィールドの集計方法変更: 合計から平均や最大値などにワンクリックで切替可能です。
ADVERTISEMENT
行・列・値の組み替えとは
行・列・値の組み替えとは、集計テーブルの軸を自由に入れ替える操作のことです。例えば、部門別売上データで、行に「部門」、列に「月」、値に「売上合計」を置いた表があるとします。この行と列を入れ替えれば、月ごとの部門別売上に変わります。また、値フィールドに「売上平均」を追加すれば、平均も同時に表示できます。この機能を活用することで、一枚のデータから多角的な分析が可能になります。スプレッドシートでは、ピボットテーブルとQUERY関数の2つの方法で実現できます。
ピボットテーブルで集計を切り替える手順
基本のピボットテーブルを作成する
- データ範囲を選択する
部門、月、売上の列を含むセル範囲を選択します。 - メニューからピボットテーブルを挿入する
「データ」メニューから「ピボットテーブル」を選び、新しいシートに作成します。 - 行と列と値を設定する
ピボットテーブルエディタの「行」に部門、「列」に月、「値」に売上を追加します。売上が数値の場合は自動で合計になります。
行と列を入れ替える
- エディタを開く
ピボットテーブルを選択して右側のエディタを表示します。 - フィールドをドラッグする
「行」にある部門を「列」の枠にドラッグし、「列」にある月を「行」にドラッグします。これで行と列が入れ替わります。 - 結果を確認する
テーブルが自動更新され、月が行方向、部門が列方向に並びます。
値の集計方法を変更する
- 値フィールドの設定を開く
エディタの「値」に追加した「売上」の横にある歯車アイコンをクリックします。 - 集計方法を選ぶ
「集計方法」から「平均」「最大値」「最小値」「カウント」など目的の方法を選択します。 - 設定を適用する
「OK」をクリックすると、値の集計方法が変更され、ピボットテーブルに反映されます。
QUERY関数で集計を切り替える手順
QUERY関数の基本構文を書く
- セルにQUERY関数を入力する
=QUERY(範囲, “クエリ”, 見出し)の形式で入力します。範囲はデータ全体を指定します。 - 基本的なselect句を書く
例: =QUERY(A1:C100, “select A, B, sum(C) group by A, B”) これで部門(A列)と月(B列)ごとの売上合計が出力されます。 - 見出しを設定する
第3引数に1を指定すると、見出し行を考慮します。
行・列・値を指定する
- pivot句を使って列を指定する
例: =QUERY(A1:C100, “select A, sum(C) group by A pivot B”) これで、行に部門、列に月、値に売上合計のクロス集計表が作成されます。 - select句で複数列を扱う
select A, B, sum(C) のように複数の列や集計を指定できます。 - 行と列を入れ替えるには
pivot句で指定する列を変更します。例えばpivot Aとすれば、部門が列方向になります。
集計方法を変更する
- 集計関数を変える
sumの代わりにavg, max, min, countなどを使います。例: =QUERY(A1:C100, “select A, avg(C) group by A pivot B”) - 複数の集計を同時に表示する
select A, sum(C), avg(C) group by A pivot B とすれば、合計と平均が並びます。 - 条件を追加する
where句で特定の部門だけを集計することもできます。
ADVERTISEMENT
集計切り替えでよくあるミスと注意点
ピボットテーブルのデータ更新が反映されない
元データを追加してもピボットテーブルに反映されない場合があります。その原因は、ピボットテーブルの範囲が固定されているからです。解決するには、元データをテーブル形式に変換するか、範囲を広めに取っておきます。また、ピボットテーブルを右クリックして「更新」を実行するのも有効です。
QUERY関数の範囲がずれる
QUERY関数で指定した範囲が絶対参照になっていないと、行を追加したときに範囲がずれることがあります。これを防ぐには、範囲を$A$1:$C$100のように絶対参照にするか、データ範囲を名前付き範囲に設定します。範囲を広めに取り、空行を許容することもできます。
日付のグループ化が思うようにいかない
月ごとに集計したい場合、日付列がそのまま年月日形式だと、QUERY関数のpivot句で月ごとにまとめられません。日付列をテキスト形式の年月に変換するか、ピボットテーブルでは日付グループ化機能を使います。ピボットテーブルなら、日付フィールドを右クリックして「月ごとにグループ化」を選べば自動で月単位になります。
ピボットテーブルとQUERY関数の比較
| 比較項目 | ピボットテーブル | QUERY関数 |
|---|---|---|
| 操作の手軽さ | ドラッグだけで直感的に入れ替え可能 | 構文を覚える必要があるが、一度書けば流用しやすい |
| 動的更新 | 元データ変更後に手動更新が必要 | 範囲に追加があれば自動反映(ただし参照範囲による) |
| 数式との連携 | 結果セルを他の数式で参照しにくい | 結果が通常のセル範囲として出力されるため、他の関数と組み合わせやすい |
| カスタマイズ性 | グループ化や並べ替え、フィルタが充実 | SQL構文で複雑な条件や計算が可能 |
ピボットテーブルとQUERY関数を使い分ければ、部門別売上の集計軸を自在に切り替えられます。まずはシンプルなピボットテーブルから試し、必要に応じてQUERY関数で高度な集計を行ってみてください。動的なレポート作成が効率化されるでしょう。
ADVERTISEMENT
超解決 第一編集部
疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。
Googleスプレッドシートの人気記事ランキング
- 【Googleスプレッドシート】GOOGLEFINANCE関数で株価・為替を取得!リアルタイムデータの呼び出し
- 【Googleスプレッドシート】印刷範囲を指定して印刷!特定範囲だけPDFや紙に出す手順
- 【Googleスプレッドシート】新しいスプレッドシートを作成する3つの方法!ドライブ・URL・テンプレート
- 【Googleスプレッドシート】数値の連続データを自動入力!オートフィルの活用
- 【Googleスプレッドシート】ダークモードを有効にする!目に優しい配色への切替
- 【Googleスプレッドシート】株価APIで株式データを自動取得!GOOGLEFINANCE超え活用
- 【Googleスプレッドシート】共有相手が編集できない時のチェック!権限と許可状態の確認
- 【Googleスプレッドシート】ページ設定で用紙サイズと向きを調整!印刷レイアウトの基本
- 【Googleスプレッドシート】Excelファイルxlsxをインポートする手順!ドラッグ&ドロップで取り込み
- 【Googleスプレッドシート】条件付き書式をコピーする!書式のみペーストの活用
