当我们在单元格中输入“=”,然后单击数据透视表中的某个数据时,可能会看到Excel自动帮我们生成一个很长的公式。例如下图:
这里出现的getpivotdata函数,是单击数据透视表中的数据时,在公式中自动生成的。
在引用数据透视表中的数据时,如果不想看到这一长串公式,可以关闭getpivotdata。与直接的单元格引用相比,getpivotdata函数比较长,看上去比较复杂,但当数据透视表布局变化时,getpivotdat函数仍然能按照指定条件正确取值。
【资料图】
1、getpivotdata函数使用示例
getpivotdata函数的功能是,从数据透视表中按条件取值。
(1)在B11单元格输入“=”后,单击B7单元格,自动生成公式:
=GETPIVOTDATA("金额",$A$1,"月份","5月","商品","打印机")
从数据透视表取值,必须要告诉excel从哪个数据透视表取值,以及取哪个字段的值。本例中数据透视表的数据分布在A1:E9区域,在getpivotdata函数中,“$A$1”足以指明数据透视表的位置。该公式的含义是,在A1单元格的数据透视表中,提取“月份”为“5月”,“商品”为“打印机”的“金额”字段数值。
(2)在B11单元格输入“=”后,单击E7单元格,自动生成公式:
=GETPIVOTDATA("金额",$A$1,"月份","5月")
E7单元格的数据是5月份各商品的销售总额。getpivotdata函数提取值的条件只有一个,即“月份”为“5月”。
(3)在B11单元格输入“=”后,单击B9单元格,自动生成公式:
=GETPIVOTDATA("金额",$A$1,"商品","打印机")
B9单元格的数据是“打印机”的销售总额。getpivotdata函数提取值的条件只有一个,即“商品”为“打印机”。
(4)在B11单元格输入“=”后,单击E9单元格,自动生成公式:
=GETPIVOTDATA("金额",$A$1)
getpivotdata函数提取的是所有商品在所有月份的销售总额,没有条件限制。
(5)从上面的(1)~(4)示例中可以看到,自动生成的getpivotdata公式中的条件不是单元格引用,而是双引号括起来的文本。这意味如果向下或向右复制公式时,getpivotdata返回的值是固定的。例如下图中,返回的始终是“1月”“手机”的销售额。
因此,在自动生成的getpivotdata公式中需要做些修改。如下图所示,将公式中的条件1、条件2修改为单元格引用$B12、C$11。
2、关闭getpivotdata函数
单击数据透视表中的数据时,在公式中自动生成的getpivotdata函数。如果不想看到这一长串公式,可以关闭getpivotdata。
选中数据透视表中的任意一个单元格,会出现【数据透视表分析】选项卡。
如果【数据透视表分析】-【选项】下拉列表中的“生成GetPivotData”被勾选,公式中就会自动出现getpivotdata函数。
单击“生成GetPivotData”,取消勾选,再单击数据透视表中的数据时,就是普通的单元格引用形式。
勾选该选项前后,公式的变化:
3、与直接单元格引用比较
如下图所示,要求从数据透视表获取“5月”销售的“打印机”的销售额。
C11单元格使用getpivotdata函数,C12单元格使用简单的公式“=B7”。
C11、C12单元格的值都能够获取5月打印机销售额“960”。但C11单元格使用getpivotdata函数,公式比较长。这样看来似乎没有必要使用getpivotdata函数,使用普通的单元格引用就可以。
如果我们把数据透视表按“总计”升序排序,就会发现C11单元格的getpivotdata函数仍然返回5月打印机销售额“960”,而C12单元格返回值变成1月打印机销售额“0”。
这是getpivotdata函数与直接单元格引用想比的优势。当数据透视表的布局变化时,getpivotdata函数仍然能依照指定条件正确取值。