我正在寻找一种在数据透视表中添加额外的列的方法,该列用于在选定的时间段内(当前为2016年-一个月)对月份的总计数(“记录计数”列)求平均值,2017年-全年,2018年-5个月)。每个月根据年平均值具有相同的数字,在选择不同的时期(全年或例如4个月)时需要动态更改。我需要数据透视表中的列,因此可以将其用于将来的数据透视表。 我不能简单地使用平均值,因为我的所有记录仅出现一次,并且我使用Count来汇总这些数字(“记录数”列)。
我当前的数据如下:
最终结果应如下所示:
我认为可以通过“计算的归档”选项来完成此操作,但现在无法使它工作。 非常感谢您的帮助!
答案 0 :(得分:1)
使用DataModel(内置于Excel 2013和更高版本中),您可以在数据透视表中编写称为“措施”的非常酷的公式,它可以执行此类操作。请看下面的例子:
如您所见,“客户计数和平均值”字段提供了按月进行的交易计数,还提供了小计行(即 2017 Total 和 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
我还建议您自学Matt Mattington撰写的一本名为 Supercharge Excel的书,当您学习编写DAX 时,甚至还可以参加他的精彩在线课程,因为它很好地涵盖了此类内容,并且与单枪匹马相比,它将为您节省大量的挠头工作。