まうにゃんのエクセル講座

エクセル中心に日々思いついたことを・・・週末は🏇

ピボットテーブルを関数で作成できるPIVOTBY関数

PIVOTBY関数は、行(縦)と列(横)でグループ化し指定された関数によって値を集計します。

 

行(縦)と列(横)の2軸に沿ったグループ化と、関連する値の集計がサポートされます。
複数の行グループレベル、複数の列グループレベルに対応しています。
総計・小計、並べ替え、フィルター処理もサポートされています。
集計にはイータ縮小ラムダ(eta reduced lambda)または明示的なLAMBDAが使用できます。

・LAMBDAヘルパー関数 ・イータ縮小ラムダ関数 ・イータ縮小ラムダ 使用例と解説


PIVOTBY関数は、ピボットテーブルを関数で作製するものと考えれば良いでしょう。

 

PIVOTBY関数は縦軸横軸の2軸のグループ化です。
縦の1軸だけのグループ化はGROUPBY関数を使用します。

GROUPBY関数は、行(縦)でグループ化し指定された関数によって値を集計します。行(縦)の軸に沿ったグループ化と、関連する値の集計がサポートされます。複数の行グループレベルに対応しています。総計・小計、並べ替え、フィルター処理もサポートされています。


この関数は、365 Insider の新関数です。
その為、機能も未確定であり今後変更の可能性もあります。
手探りでの検証を行いながらの執筆となっているため不正確な情報も部分的には含まれている可能性がある事をご承知おきください。

 

PIVOTBY関数の構文

PIVOTBY(行フィールド,列フィールド,値,関数,[フィールドヘッダー],[行合計深さ],[行並べ替え順序],[列合計深さ],[列並べ替え順序],[フィルター配列])
 
引数 説明
行フィールド 必須
行をグループ化し、行ヘッダーを生成するために使用される値を含む列方向(縦方向)の配列または範囲。
配列または範囲には複数の列を含むことが出来ます。
その場合、出力には複数の行グループ レベルが含まれます。
列フィールド 必須
列をグループ化し、列ヘッダーを生成するために使用される値を含む列指向(横方向)の配列または範囲。
配列または範囲には複数の行が含まれる場合があります。
その場合、出力には複数の列グループ レベルが含まれます。
必須
集計するデータの列指向の配列または範囲。
配列または範囲には複数の列が含まれる場合があります。その場合、出力には複数の集計が含まれます。
関数 必須
「値」を集計するために使用される明示的(LAMBDA関数)またはイータ縮小ラムダ関数を指定。
ラムダのベクトル(配列)を指定できます。
その場合、出力には複数の集計が含まれます。ベクトル(配列)の向きによって行方向/列方向のレイアウトが決まります。
イータ縮小LAMBDAとして以下の関数が入力候補に表示されます。
SUM,AVERAGE,MEDIAN,COUNT,COUNTA,MAX,MIN,PRODUCT,ARRAYTOTEXT,CONCAT,SRDEV.S,STDEV.P,VAR.S,VAR.P,MODE.SNGL
詳しくは以下を参照してください。
イータ縮小ラムダ(eta reduced lambda)
フィールドヘッダー 省略可能
「行フィールド」と「値」にヘッダーがあるかどうか、および結果でフィールド ヘッダーを表示するかどうかを指定する数値。
省略 ::自動。※自動判別なので意図しない結果になる場合があります。
0 : いいえ(ヘッダーなし、ヘッダー生成しない)
1 : はい、表示しません(ヘッダーあり、ヘッダー表示しない)
2 : いいえ、生成します(ヘッダーなし、ヘッダー生成する)
3 : はい、表示します(ヘッダーあり、ヘッダー出力する)
自動では、「値」引数に基づいてデータにヘッダーが含まれていると想定されます。
1番目の値がテキストで 2 番目の値が数値の場合、データにはヘッダーがあるとみなされます。
複数の行または列グループ レベルがある場合、フィールド ヘッダーが自動で表示されます。
行合計深さ 省略可能
行ヘッダーに合計を含めるかどうかを決定します。
省略 : 自動: 総計と、可能な場合は小計。
0 : 合計なし
1 : 総計
2 : 総計と小計
-1 : 上部に総計
-2 : 上部に総計と小計
小計の場合、フィールドには少なくとも 2つの列が必要です。
フィールドに十分な列がある場合、2より大きい数値がサポートされます 。
行並べ替え順序 省略可能
省略時は行フィールドの昇順で並べ替えられます。
行をソートする方法を示す数値。
数値(1から始まる)は「行フィールド」の列に対応し、その後に「値」の列が続きます。
数値が負の場合、行は降順/逆順に並べ替えられます。
「行フィールド」のみに基づいて並べ替える場合は、数値のベクトル(配列)を指定できます。
列合計深さ 省略可能
列ヘッダーに合計を含めるかどうかを決定します。
省略 : 自動: 総計と、可能な場合は小計。
0 : 合計なし
1 : 総計
2 : 総計と小計
-1 : 上部に総計
-2 : 上部に総計と小計
小計の場合、フィールドには少なくとも 2つの列が必要です。
フィールドに十分な列がある場合、2より大きい数値がサポートされます 。
列並べ替え順序 省略可能
省略時は列フィールドの昇順で並べ替えられます。
列をソートする方法を示す数値。
数値(1から始まる)は「列フィールド」の行に対応し、その後に「値」の行が続きます。
数値が負の場合、列は降順/逆順に並べ替えられます。
「列フィールド」のみに基づいて並べ替える場合は、数値のベクトル(配列)を指定できます。
フィルター配列 省略可能
対応するデータ行を対象とするかどうかを示すブール値の列指向(縦方向)1時限配列。
配列の長さは、「行フィールド」と「列フィールド」に提供される配列の長さと一致する必要があります。

 

続きは以下で。

excel-ubara.com