4

ピボットテーブルの [値] 領域で使用する数式が、その行の総計列に使用する数式と異なるという問題が頻繁に発生します。私は通常、値を合計したいのですが、合計を平均したいと思っています。列ラベルの日付、行ラベルの肉の種類、および値の合計注文をピボッ​​トすると、通常は次のようになります。

Row Lables | Day 1 | Day 2 | Day 3 | Grand Total
________________________________________________
Beef       |  100  |  105  |  102  |   307
Chicken    |  200  |  201  |  202  |   603

日ごとの合計と、総計列のすべての日の合計を取得します。ここに私が欲しいものがあります:

Row Lables | Day 1 | Day 2 | Day 3 | Grand Total (Avg of Day Totals)
________________________________________________
Beef       |  100  |  105  |  102  |   102.3
Chicken    |  200  |  201  |  202  |   201.0

この場合、注文は日ごとに合計されますが、総計は合計の平均になります。私が今やっていることは、ピボットデータをコピーして別のシートに貼り付け、平均を計算することです。カスタム総計列でこれを行う方法があれば、それは素晴らしいことです。これは私にとってピボット テーブルの最大の欠点の 1 つですが、私の無知が原因であることを願っています。助けてくれてありがとう!

4

2 に答える 2

6

特定のフィルター コンテキストで「行」の数をチェックするメジャーを記述し、それを IF() にネストして、使用するものを決定できます。

PowerPivot V2 を使用している場合は、次のようになります。

=IF(HASONEVALUE(Calendar[Day]), SUM(AMOUNT), AVERAGE(AMOUNT))

PowerPivot V1 を使用している場合:

=IF(COUNTROWS(Calendar[Day])=1, SUM(AMOUNT), AVERAGE(AMOUNT))

どちらも、指定されたコンテキストでテーブルの行数を評価するという点で同じことを行い、肉の種類が「牛肉」の場合、一時的にフィルター処理されたテーブルには 1 つの行があります。行が 1 つもない場合は、AVERAGE() のパスをたどります。

これは、列ヘッダー 'Days' が Calendar というテーブルにあることを前提としています (別の Calendar テーブルを使用していない場合は、PowerPivot IMO の最も強力な機能を利用できません)。ジェイコブ

于 2012-12-06T02:34:05.233 に答える
1

「良い」方法は思いつきませんが、ここに 1 つのオプションがあります。Amount フィールドをもう一度データ領域に追加し、操作を Average に変更します。次に、条件付き書式を使用して、データ領域の平均を非表示にし、合計領域の合計を非表示にします。

条件付き書式を使用したピボット テーブル

日曜大工のピボット テーブルでいくつかの配列数式を使用した方がよい場合があります。ピボット テーブルの利点は失われますが、データの柔軟性が高まります。

于 2012-11-01T18:27:16.830 に答える