PIVOTBY関数 – 検索/行列

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以前のバージョンでは利用できません。