【问题标题】:Calculate average based on a value column (count) in a pivot table根据数据透视表中的值列(计数)计算平均值
【发布时间】:2018-06-28 21:34:38
【问题描述】:

我正在寻找一种在数据透视表中添加一个额外列的方法,该列在选定的时间段(当前为 2016 年 - 一个月)内平均月计数的总和(“记录计数”列) ,2017 年 - 全年,2018 年 - 5 个月)。每个月都会根据年平均值具有相同的数字,在选择不同的时期时需要动态变化:全年或例如 4 个月。我需要数据透视表中的列,因此它可以用于未来的数据透视图。 我不能简单地使用平均值,因为我的所有记录只出现一次,我使用 Count 来汇总这些数字(“记录计数”列)。

我目前的数据是这样的:

最终的结果应该是这样的:

我认为它可以在“计算归档”选项的帮助下以某种方式完成,但我现在无法让它工作。 非常感谢任何帮助!

【问题讨论】:

  • 目前,您示例中的每一年都有一个小计。您是否正在寻找一个这样的字段,除了平均值而不是总和,对吗?
  • 我真的不需要小计..我正在尝试添加一个列,该列对一段时间内(目前是一年)内月份的计数总和进行平均。我不能在数据透视表中使用标准平均值选项,因为我正在寻找的平均值取决于计数的总和。在理想状态下,一个时间段内的每个月(目前是一年)将具有相同的平均数,如果您按不同的时间段(年或月,如果您仅过滤例如一月至四月,它会动态变化, 2017)。
  • 你有什么版本的 Excel?
  • Microsoft Excel 2013
  • 抱歉延迟回复...一直在旅行。我很清楚你想要什么,你能修改你的截图,让它包含你想要的数字吗? (只需手动填充它们)。此外,数据透视表中的基础日期字段是否按月和年分组?还是原始数据中的所有日期都对应于月初?

标签: excel pivot-table


【解决方案1】:

使用 DataModel(内置于 Excel 2013 及更高版本),您可以在数据透视表中编写非常酷的公式,称为度量,可以执行此类操作。举个例子:

如您所见,Cust Count & Average 字段按月提供交易计数,但也提供小计行(即 2017 年总计 2018 Total 行)使用以下 DAX 公式:

=AVERAGEX(SUMMARIZE(Table1,[Customer (Month)],"x",COUNTA(Table1[Customer])),[x])

这只是说“按月按客户字段计数汇总此表,调用生成的汇总字段'x',然后给我该字段x的平均值”。

由于 DAX 度量是在数据透视表的上下文中执行的,因此您可以获得所需几个月的计数,并获得所需的年度小计平均值。

很难解释,但证明 DAX 肯定可以为您做到这一点。

有关如何将数据添加到 DataModel 以及如何随后编写度量的示例,请参阅以下链接中的答案:

Using the Excel SMALL function with filtering criteria AND ignoring zeros

我还建议自己在学习编写 DAX 时阅读一本名为 Supercharge Excel 的书,作者是 Matt Allington,甚至可以参加他很棒的在线课程,因为它很好地涵盖了这类事情,并且与单打独斗相比,这将为您节省很多麻烦。

【讨论】:

  • 非常感谢!我将使用 DAX 公式来获得我正在寻找的结果。
猜你喜欢
  • 2019-12-30
  • 1970-01-01
  • 1970-01-01
  • 2016-10-21
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2014-11-04
  • 1970-01-01
相关资源
最近更新 更多