在Excel Pivot表报告中,可以通过插入“计算字段”来进行用户干预,以便用户可以进一步操作报告。与在数据透视表外部使用数据透视表数据的公式相比,这似乎是最好的方法,原因很明显。
“计算字段”对话框,如下所示:
虽然很容易在可用变量之间进行计算(如屏幕截图所示)但我找不到如何为任何可用变量引用值范围。
例如,如果由于某种原因我希望将数据置于范围A1:A100
的中心,我会使用= A1 - AVERAGE(A1:A100)
并填充常规Excel表格中的所有行。但对于数据透视表,如果我使用“计算字段”对话框并添加公式为= 'Actual Sales' - AVERAGE('Actual Sales')
的新变量,我将0
作为输出。
所以我的问题是如何在“计算字段”对话框中引用“实际销售额”变量的整个范围,以便AVERAGE()
将返回所有目标单元格的平均值?
答案 0 :(得分:14)
我会将此评论作为回答发布,因为我对自己所要求的内容不太可信。
I)几个类似的问题试图做同样的事情,没有成功:
II)本文:Excel Pivot Table Calculated Field例如列出了计算字段的许多限制:
III)对于一系列单元格使用AVERAGE()
和类似函数的可能性很小,但仅当数据透视表没有分组单元格时才适用,这允许将单元格列为新组中的项目(右上图中的“Fileds”列表框)然后用户可以计算AVERAGE()
,从Items列表框中明确引用每个项目(单元格)作为参数。也许这里有更好的解释:Calculate values in a PivotTable report
对于我的Pivot表它不适用,因为我的范围不够小,这个选项是理智的选择。
答案 1 :(得分:3)
有些可能,特别是访问小计:
"在Excel 2010+中,您可以右键单击这些值并选择Show Values As - >父行总数的百分比。" (或父列总数的百分比)
来源:http://datapigtechnologies.com/blog/index.php/excel-2010-pivottable-subtotals/
答案 2 :(得分:1)
谢谢种植种子,Cel!几个小时以来我一直在努力,终于明白了。我正在计算一个文本字段,oops,计算失败。
在我的原始数据中创建了2个辅助列,如果满足条件,则每个列都为1,否则为0。然后将每个拉入一个枢轴列,我的称为“Inbd”(对于Inbound),“Back”,其中“Back”是返回发送设施,所以实际上总计是一次旅行,而不是2次旅行,即back是入站的一个子集,而不是每个inbd都有一个后退(显然)。尝试计算数据透视表中的,以便我可以对字段进行排序为每个发送设施返回入站的速率。
对于我使用的计算字段:=IFERROR(IF(Pvt_Back>0,Pvt_Back/Pvt_Inbd,0),0)
所以:如果我们发送回发送大于0的次数,则将Back / Inbd除以给出一个比率;如果等于0,则为0;如果Inbd = 0,则为0以避免Div / 0错误。
再次感谢!! :)
答案 3 :(得分:0)
数据透视表Excel2007-平均排除零
= sum(XX:XX)/ count if(XX:XX,"> 0")
Invoice USD
数量率(计数)值(总和) 300 0.000 000.000 1000 0.385 385.000
平均费率计数应排除0.000费率