次のデータがあります。
_customer_id customer_name id date contract_value costs profit_extra_work
200027 Company A 00.161.559 08/07/2015 499.5 50.55 0
200027 Company A 00.161.566 08/07/2015 499.5 30 824.9
200027 Company A 00.188.852 04/04/2016 499.5 0 69.39
200027 Company A 00.190.078 30/05/2016 499.5 98.1 158.29
200027 Company A 00.190.291 14/04/2016 499.5 15 346.06
200027 Company A 00.222.221 12/05/2017 499.5 15 5.1
200027 Company A 00.222.229 12/05/2017 499.5 100.35 400.81
200027 Company A 00.161.561 08/07/2015 499.5 45 269.97
200027 Company A 00.185.058 18/02/2016 499.5 15 77.41
200027 Company A 00.190.074 30/05/2016 499.5 37.5 95.92
200027 Company A 00.190.084 30/05/2016 499.5 45 420.89
200027 Company A 00.194.050 01/06/2016 499.5 139.65 0
200027 Company A 00.222.222 12/05/2017 499.5 60 274.88
_
これは私のピボットテーブルは次のようになります。
_Row Labels Average of contract_value Sum of costs Sum of profit_extra_work
Company A 499.5 651.15 2943.62
_
私がやりたいのは、「契約利益」という計算フィールドを追加することです。この値は_Average of contract_value - Sum of costs
_として計算できます。そこで、次の式で新しい計算フィールド「契約利益」を追加してみました。
_= contract_value - costs
_
しかし、これは間違った結果を返します(5842.35)。その理由は、_contract_value
_の場合、平均ではなく合計を取るためです。 AVERAGE(contract_value) - costs
を使用してみましたが、これは同じ不正な結果を返します。
計算フィールドの契約値の平均値を使用して、正しい値-151.56を取得するにはどうすればよいですか?
Microsoftのやや不透明なヘルプページには、「カスタム数式は個々のレコードではなく合計で機能する」と記載されています。 ( "ピボットテーブルレポートの値を計算する" これは、質問に対して2つの意味があります。(1)契約の値への数式の参照は、sum契約値の場合、フィールドは平均として表示されますが、(2)「AVERAGE」や「COUNT」などの関数は、単一の値(合計)で動作しているため、ほとんど何もしません。
独自の平均を計算するには、すべてのエントリに「1」を持つ新しい変数をデータテーブルに作成する必要があります。これを「ヘルパー」と呼びましょう。カスタム数式の「ヘルパー」は、行数のカウントになります。 (例では13)。
だからあなたが探している式は
=(contract_value /helper )-costs
(これは行ごとに個別に計算されるため、たとえば「B社」を追加すると、各企業の「正しい」結果が得られます。)