在数据透视表中的自定义计算字段中使用公式

时间:2013-05-20 20:00:10

标签: excel excel-2010 pivot-table

在Excel Pivot表报告中,可以通过插入“计算字段”来进行用户干预,以便用户可以进一步操作报告。与在数据透视表外部使用数据透视表数据的公式相比,这似乎是最好的方法,原因很明显。

“计算字段”对话框,如下所示:

enter image description here

虽然很容易在可用变量之间进行计算(如屏幕截图所示)但我找不到如何为任何可用变量引用值范围。

例如,如果由于某种原因我希望将数据置于范围A1:A100的中心,我会使用= A1 - AVERAGE(A1:A100)并填充常规Excel表格中的所有行。但对于数据透视表,如果我使用“计算字段”对话框并添加公式为= 'Actual Sales' - AVERAGE('Actual Sales')的新变量,我将0作为输出。

所以我的问题是如何在“计算字段”对话框中引用“实际销售额”变量的整个范围,以便AVERAGE()将返回所有目标单元格的平均值?

4 个答案:

答案 0 :(得分:14)

我会将此评论作为回答发布,因为我对自己所要求的内容不太可信。

I)几个类似的问题试图做同样的事情,没有成功:

II)本文:Excel Pivot Table Calculated Field例如列出了计算字段的许多限制:

  • 对于计算字段,将对其他字段中的各个金额求和,然后对总金额执行计算。
  • 计算字段公式不能引用数据透视表总计或小计
  • 计算字段公式不能按地址或名称引用工作表单元格。
  • Sum是计算字段唯一可用的函数。
  • 计算字段在基于OLAP的数据透视表中不可用。

III)对于一​​系列单元格使用AVERAGE()和类似函数的可能性很小,但仅当数据透视表没有分组单元格时才适用,这允许将单元格列为新组中的项目(右上图中的“Fileds”列表框)然后用户可以计算AVERAGE(),从Items列表框中明确引用每个项目(单元格)作为参数。也许这里有更好的解释:Calculate values in a PivotTable report
对于我的Pivot表它不适用,因为我的范围不够小,这个选项是理智的选择。

答案 1 :(得分:3)

有些可能,特别是访问小计:

"在Excel 2010+中,您可以右键单击这些值并选择Show Values As - >父行总数的百分比。" (或父列总数的百分比)

enter image description here

  • 并确保相关字段是一个可以求和的数字字段,它不适用于只有计数才能提供信息的文本字段。

来源: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费率