![Excel 2010 数据透视表计算平均利润/亏损](https://linux22.com/image/1369827/Excel%202010%20%E6%95%B0%E6%8D%AE%E9%80%8F%E8%A7%86%E8%A1%A8%E8%AE%A1%E7%AE%97%E5%B9%B3%E5%9D%87%E5%88%A9%E6%B6%A6%2F%E4%BA%8F%E6%8D%9F.png)
我想在 Excel 数据透视表中计算平均利润/亏损。假设源数据在 Excel 表中,它看起来像
Date Net income
1/1 5
1/1 -3
1/1 7
1/2 -10
1/2 4
我的解决方案是添加 2 个带有公式的额外列IF([@Net income]>=0,[@Net income],0)
:IF([@Net income]<0,[@Net income],0)
Date Net income Profit Loss
1/1 5 5 0
1/1 -3 0 -3
1/1 7 7 0
1/2 -10 0 -10
1/2 4 4 0
然后在派生的数据透视表中,我可以从源表中添加 2 列,其中包含“利润”和“损失”列的平均值。
Pivot table Avg Profit Avg Loss
1/1 4 (=12/3) -1 (=-1/3)
1/2 2 (=4/2) -5 (=-10/2)
我想知道是否有更好的方法,这样我就不需要添加 2 个额外的列“利润”和“亏损”。在这种情况下是否可以使用计算字段/项目?
答案1
不幸的是,计算字段数据透视表的选项只能处理全部数据;我的意思是您无法根据值过滤数据后您已创建了数据透视表。因此averageif
和if
函数必须处理而field
不是cells
,否则计算字段就有可能出现这种情况。
您可以使用标志列公式将这两列合并为一列C2=if(B2< 0, "Loss", "Gain")
,然后将其用作数据透视表上的过滤器。
或者您可以设置相同的标志列,并将其用作数据透视表上的切片器。然而,在这两种情况下,你不会同时看到收益和损失。
不幸的是,我认为 Excel 目前无法使用函数为您完成这项工作,您将需要额外的列,但您始终可以隐藏它们。