エクセル (vr.2016) – ピボットテーブル – フィルターを無視して計算する 関数「ALL」
ピボットテーブルの総計は表に従い集計されます。つまり表にあらわれてる行の値総計ですが、表にあらわれていない (例えばフィルターされている) 行も含めた総計を集計します。
目次
データ
今回はテーブル「masta」だけを使用します。
会員数構成比
住所別の構成比を集計します。データテーブルは「masta」です。
・「会員コード」を値フィールドへ入れます。
・「値フィールドの設定」
・「集計方法」タブ
・「重複しない値の数」を選択します。
・「計算の種類」タブ
・「総計に対する比率」を選択します。
構成比の行合計は100%になります。
構成比の計算式は
・分子=「会員数 (登録)」の行ごとの値
・分母=「会員数 (登録)」の行の総計
フィルターすると値が変化する
スライサーで「住所」をフィルターします。フィルターで選択された住所だけが表示されます。
フィルターされていても構成比の計算式は同じです。
・分子=「会員数 (登録)」の行ごとの値
・分母=「会員数 (登録)」の行の総計
フィルターの結果、分母の値が変わるので計算結果としての各行の値も変わります。変わらないのは構成比の行合計が100%になることです。
では、「住所」をフィルターしてもフィルターされていない構成比を表示できるのか?
つまり、フィルターにかかわらず、計算の分母が常に「14」になる計算です。構成比の行合計が100%にならないことがある計算ともいえます。
フィルター関数で分母を作成
使用する関数は
・SUMX(テーブル,評価する式)
・ALL(テーブル)
・関数「ALL」のテーブルを指定します。
・関数「SMUX」の評価する式を指定します。
=SUMX(ALL(masta),[会員数 (登録)])
これで分母が完成です。
列Bの値を分子、列Dの値を分母にすれば算出できます。
=[会員数 (登録)]/SUMX(ALL(masta),[会員数 (登録)])
集計
列Cと同一値になっています。
「住所」をフィルターしても行の値が変化しなければ成功です。
データ職人
データ職人