エクセル (vr.2016) – ピボットテーブル – フィルターを無視して計算する 関数「ALL」

エクセル (vr.2016) – ピボットテーブル – フィルターを無視して計算する 関数「ALL」

ピボットテーブルの総計は表に従い集計されます。つまり表にあらわれてる行の値総計ですが、表にあらわれていない (例えばフィルターされている) 行も含めた総計を集計します。

データ
リレーションテーブル

トレーニング用サンプルデータはこちらからコピペできます。

 今回はテーブル「masta」だけを使用します。

会員数構成比
集計方法

 住所別の構成比を集計します。データテーブルは「masta」です。
・「会員コード」を値フィールドへ入れます。
・「値フィールドの設定」
・「集計方法」タブ
・「重複しない値の数」を選択します。

計算の種類

・「計算の種類」タブ
・「総計に対する比率」を選択します。

集計結果

 構成比の行合計は100%になります。
 構成比の計算式は
・分子=「会員数 (登録)」の行ごとの値
・分母=「会員数 (登録)」の行の総計

フィルターすると値が変化する
フィルター

 スライサーで「住所」をフィルターします。フィルターで選択された住所だけが表示されます。

 フィルターされていても構成比の計算式は同じです。
・分子=「会員数 (登録)」の行ごとの値
・分母=「会員数 (登録)」の行の総計

 フィルターの結果、分母の値が変わるので計算結果としての各行の値も変わります。変わらないのは構成比の行合計が100%になることです。

 では、「住所」をフィルターしてもフィルターされていない構成比を表示できるのか?
 つまり、フィルターにかかわらず、計算の分母が常に「14」になる計算です。構成比の行合計が100%にならないことがある計算ともいえます。

フィルター関数で分母を作成
フィルター関数

 使用する関数は
・SUMX(テーブル,評価する式)
・ALL(テーブル)

・関数「ALL」のテーブルを指定します。

評価する式

・関数「SMUX」の評価する式を指定します。

分母が完成
=SUMX(ALL(masta),[会員数 (登録)])

 これで分母が完成です。

構成比計算

 列Bの値を分子、列Dの値を分母にすれば算出できます。

完成
=[会員数 (登録)]/SUMX(ALL(masta),[会員数 (登録)])
集計
集計

 列Cと同一値になっています。

フィルター

 「住所」をフィルターしても行の値が変化しなければ成功です。