“成功生成一张数据透视表,有得时候只是数据处理的开始。当你想对数据透视表中数据进行计算时,你是否有曾疑惑过,为什么填充柄变得无效了?
案例
如果需要对数据透视表中的B列、C列进行计算,并在J列中求得结果。火箭君猜,默认的操作可能会是这样:
然后……
一旦使用填充柄后,所有的结果居然都一样……仔细检查公式后,你肯定会发现,从J6:J10的公式其实是一模一样的。
肿么办?
解决方案
理解GETPIVOTDATA函数
我们可以先理解下GETPIVOTDATA函数的用法。
为了保证数据引用的准确性,在默认引用数据透视表中的数据时,Excel会使用GETPIVOTDATA函数,并加入条件限制,从而实现绝对引用。比如,
=GETPIVOTDATA("求和项:销售额",$A$3,"区域","非洲","财年",2012)
引用了一个"区域"为"非洲"以及"财年"为"2012"的"求和项:销售额"。
这也是造成填充柄失效的原因。
解法一:将绝对引用变成相对引用
由于2012是一个限制条件,因此我们可以将"区域"所对应的条件,从"非洲"改成A6单元格。
不过很明显,这样操作还是有弊端的。就是J10单元格对应的总计计算,并没有快速填充成功。这其实是因为,无论是总计还是分类汇总,他们在Excel中的表达式与数据字段并不相同。
因此用这种方式,你还可能需要进一步手动调整总计和分类汇总相关的计算结果。
解法二:关闭默认的GETPIVOTDATA函数
另一个方法可能更为直接,那就是关闭默认引用GETPIVOTDATA函数。
你可以按照以上动图的操作关掉GETPIVOTDAT函数,这样对于数据透视表的计算就和普通表格没有区别了。甚至,当透视表的某些结构发生变化时,计算还可以继续存在。
这法子,是不是更为直接和快速?