PIVOTBY関数 – 指定した列を基準にデータをピボット集計する関数
1. 使い方と活用例
PIVOTBY関数は、表形式のデータに対して指定した列でグループ化し、集計関数を適用することで、動的なピボット集計を行う関数です。
従来のピボットテーブルとは異なり、関数ベースで柔軟かつ簡潔に集計結果を得られるため、ダッシュボードや分析表の自動化に最適です。
2. 基本の書式
=PIVOTBY(配列, 行グループ, 集計関数, [列グループ], [集計列名])
3. 引数の説明
- 配列 – ピボット集計したい元の表データ(ヘッダーを含む範囲)を指定します。
- 行グループ – 行方向でグループ化する列を指定します(例:部門や商品など)。
- 集計関数 – グループごとの値をどう集計するかをLAMBDA関数で指定します(例:LAMBDA(x, SUM(x)))。
- 列グループ(省略可)– 列方向でグループ化する列を指定すると、クロス集計(ピボット形式)になります。
- 集計列名(省略可)– 集計する対象の列名(文字列)または列番号を指定します。
4. 使用シーン
- 部門ごとの売上合計や平均などを簡潔に関数で集計したいとき
- 商品別 × 地域別のようなクロス集計を動的に作成したいとき
- 従来のピボットテーブルのような集計を関数で制御・再利用したいとき
5. 応用のポイント
PIVOTBY関数は、BYCOL関数やLAMBDA関数と同様、動的配列を前提とした新しい関数です。
集計処理はすべてLAMBDA関数で指定するため、SUM、AVERAGE、COUNT、MAX、MINなど任意の集計が可能です。
列方向のグループを追加することで、Excel上で完全なピボット集計表を作成できます。
6. 具体例とその解説
=PIVOTBY(A1:D100, "部門", LAMBDA(x, SUM(x)), , "売上")
この式は、列A~Dにあるデータから、「部門」列ごとに「売上」列の合計を求めます。
結果は部門ごとに売上が集計された1列の表になります。
=PIVOTBY(A1:E100, "商品", LAMBDA(x, AVERAGE(x)), "地域", "売上")
この式は、「商品」ごとに「地域」別の「売上」平均を計算し、行×列のクロス集計表を出力します。
従来のピボットテーブルのように、分析軸を分けた可視化ができます。
7. 関連関数の紹介
- GROUPBY関数 – グループ化して集計する関数(列方向のピボットなし)
- LAMBDA関数 – 関数内でカスタム処理を記述するための関数
- BYROW関数 / BYCOL関数 – 行または列ごとにLAMBDA関数を適用する関数
- LET関数 – 数式内で変数を定義し、計算を効率化する関数
8. まとめ
PIVOTBY関数は、関数ベースで動的にピボット集計を実現できる新しい形式の分析関数です。
LAMBDAと組み合わせることで自由度の高い集計処理が可能になり、手動のピボットテーブルよりも柔軟性と再利用性に優れます。
BIツール的なExcel利用を目指すユーザーにとって、非常に強力な機能です。
9. 対応バージョン
PIVOTBY関数は、Microsoft 365 専用の関数です。
Excel 2021以前のバージョンでは利用できません。