9.7 同时引用多个字段进行计算

当计算需要涉及数据透视表中的多个字段时,数据透视表函数还可以同时引用多个字段名称进行计算,大大简化了计算公式。

示例9.4 多条件计算产品销售价格

仍以图9-18所示的数据为例,要求计算销售量最小的分公司2012年2月1日D产品的销售价格,具体计算公式如下:

=PRODUCT(GETPIVOTDATA(D1:E1&"",A1,$B$1,"D产品",$A$1,LOOKUP(2,1/(MIN(Corp)=Corp),$A$1:$A$33), $C$1,DATE(2012,2,1)^{1,-1})

公式解析:

(1)使用GETPIVOTDATA函数根据计算条件,同时获取“金额”和“数量”两个字段的值,函数公式如下。

GETPIVOTDATA(D1:E1&"",A1,$B$1,"D产品",$A$1,LOOKUP(2,1/(MIN(Corp)=Corp),$A$1:$A$33),$C$1,DATE(2012,2,1))

该公式的关键在于GETPIVOTDATA函数的第1个参数“D1:E1&""”,该参数引用了包含“金额”、“数量”两个计算字段名称所在的单元格区域,在其他计算条件相同的情况下,可以同时获取两个计算字段的值,计算结果为{5976,900}。

提示img02

当多个计算字段相邻时,可以直接连续引用该字段所在单元格区域;如果计算字段不相邻可以使用OFFSET函数、INDIRECT函数进行间隔引用。

上述公式可以改为:

GETPIVOTDATA(OFFSET(D1,,,,2)&"",A1,$B$1,"D 产品",$A$1,LOOKUP(2,1/(MIN(Corp)=Corp),$A$1:$A$33),$C$1,DATE(2012,2,1))

或者

GETPIVOTDATA(T(INDIRECT("rlc"&COLUMN(D:E),)),A1,$B$1,"D 产品",$A$1,LOOKUP(2,1/(MIN(Corp)=Corp), $A$1:$A$33),$C$1,DATE(2012,2,1))

(2)使用PRODUCT函数,将GETPIVOTDATA函数计算得到的结果与{1,-1}进行幂计算,形成结构相除算式,最终计算结果为6.64。