ピボットテーブルの結果に基づいて追加の値を計算する

ピボットテーブルの結果に基づいて追加の値を計算する

ピボット テーブルを使用して Excel でクリーニング結果の要約を作成しようとしていますが、まとめるのに問題があります。次のデータがあります。

Cleaning 1    Location 1    Result 1
Cleaning 1    Location 2    Result 2
Cleaning 1    Location 3    Result 3
Cleaning 2    Location 1    Result 4
Cleaning 2    Location 2    Result 5
Cleaning 2    Location 3    Result 6
Cleaning 3    Location 1    Result 7
Cleaning 3    Location 2    Result 8
Cleaning 3    Location 3    Result 9

average + 3 * standard deviation現在、各場所の平均と標準偏差、およびすべての結果を合わせた平均と標準偏差を含むピボット テーブルがあります。また、各場所とすべての結果を合わせた Daar も用意したいと考えています。

私が見つけた情報は、データの元の列に基づいて追加のパラメータを計算する処理は行いますが、ピボット テーブルの結果のデータは結合しません。何か助けになりますか?

これまで試したこと:

ピボットデータを取得は良い数式ですが、ピボット テーブルのフィルター オプションを使用するので、理想的には機能しません。また、合計には機能しないようです。

答え1

VBA 作業を行わない限り、GETPIVOTDATA を使い続けることになると思います。以下では、それが機能すること、およびフィルタリングをいじっているときにそれを機能させる方法を示します。

フィールド計算を使用したいと思う人は多いでしょう。これらは「行ごとに」動作し、N または STDEV の正しい値にアクセスできません。ここでも、以下で説明します。

このデータから始めて、あなたの質問からまとめました...

ここに画像の説明を入力してください

...このピボットテーブルは構築されました...

ここに画像の説明を入力してください

これは動作しません

フィールド計算を作成しようとしました...

ここに画像の説明を入力してください

...次の(誤った)結果になります...

ここに画像の説明を入力してください

これは効果がある

ピボット テーブルのフィルターを変更しても影響を受けないスプレッドシート計算を実装するには、必要な計算を行うのに十分なスペースが確保されるまで、ピボット テーブルの上に行を挿入します。

例として、以下が構築されました...

ここに画像の説明を入力してください

... セル B2 から B4 までの一般的な数式は次のとおりです...

=IF(ISERROR(GETPIVOTDATA("Average of Result",$A$7,$A$1,$A2)),"",GETPIVOTDATA("Average of Result",$A$7,$A$1,$A2)+3*GETPIVOTDATA("StdDev of Result",$A$7,$A$1,$A2))

... この式は、ピボット テーブルに「場所 1」の情報が含まれているかどうかを確認します。含まれていない場合は何も表示されません。含まれている場合は、場所 1 の標準偏差の 3 倍を場所 1 の平均に追加します。

セル C2 から C4 は減算を除いて同じです。セル B5 には... が含まれています。

=IF(ISERROR(GETPIVOTDATA("Average of Result",$A$7)),"",GETPIVOTDATA("Average of Result",$A$7)+3*GETPIVOTDATA("StdDev of Result",$A$7))

この式は、総計結果が存在するかどうかを確認します。存在しない場合は何も表示されません。存在する場合は、総計平均 + 総計標準偏差の 3 倍が計算されます。

フィルタリングを変更すると...

ここに画像の説明を入力してください

... ピボット テーブルから総計が削除されると...

ここに画像の説明を入力してください

関連情報