9.2 数据透视表函数的语法结构

9.2.1 数据透视表函数的基本语法

Excel提供了GETPIVOTDATA函数来返回存储在数据透视表中的数据。如果报表中的计算或汇总数据可见,则可以使用GETPIVOTDATA函数从数据透视表中检索出相关数据。

该函数的基本语法如下:

GETPIVOTDATA(data_field,pivot_table,[field1,item1],[field2,item2],…)

(1)参数data_field表示包含要检索数据表的字段名称,其格式必须是以成对双引号输入的文本字符串或是经转化为文本类型的单元格引用。

注意img01

当该参数是文本字符串时,必须使用成对双引号引起来;如果是单元格引用,必须使用文本类函数(如T函数),或直接使用文本连接符“&”连接一个空值符“""”,将该参数转化成文本类型,否则会出现“#REF!”错误。

(2)参数pivot_table表示对数据透视表中任何单元格或单元格区域的引用,该信息用于决定哪个数据透视表包含要检索的数据。

(3)参数field1,item1,field2,item,…为一组或多组“字段名称”和“项目名称”,主要用于描述获取数据的条件,该参数可以为单元格引用和常量文本字符串。

注意img01

(1)如果参数为数据透视表中“不可见”或“不存在”的字段,则GETPIVOTDATA函数将返回“#REF!”错误。

(2)该语法结构适用于获取数据透视表各种汇总方式下的明细数据,或“自动”分类汇总方式下的分类汇总数据,但不能用于获取“自定义”分类汇总方式下的分类汇总数据。

9.2.2 Excel 2000版本中的函数语法

在Excel 2000版本中开始新增加了数据透视表函数,虽然Excel 2003版本中该函数的语法得到了修改或完善,并一直沿用至Excel 2010版本,但出于兼容性的要求,同时也保留了Excel 2000版本下的语法用法,从而形成了另一种特殊语法用法。该函数在Excel 2000版本中的语法如下:

=GETPIVOTDATA(pivot_table, name)

其中pivot_table表示对数据透视表中任何单元格或单元格区域的引用,该信息用于决定哪个数据透视表包含要检索的数据。

name参数是一个文本字符串,它用引号括起来,描述要汇总数据取值条件,可以是:<datafield field1item1field2item2……field_n_item_n>,或

<datafield field1[item1]field2[item2] ……field_n[itemn]>

甚至可以进一步简化为:

<datafield item1item2 ……item_n>

整个公式可以理解为:

GETPIVOTDATA(透视表内任意单元格,“取值列字段名称组条件项1 条件项2 ……条件项n”)

该语法的优点在于公式比较简捷,缺点是语法中会出现多个参数条件罗列在一起,不便使用者阅读和理解。

9.2.3 获取“自定义”分类汇总方式下汇总数据的特殊语法

当用户希望获取采用“自定义”分类汇总方式生成的数据透视表分类汇总数值时,需要使用GETPIVOTDATA函数的特殊语法,其语法结构如下:

GETPIVOTDATA(pivot_table,"<GroupName>[<GroupItem>;<FunctionName>]data_field")

(1)参数pivot_table表示对数据透视表中任何单元格或单元格区域的引用,该信息用于决定哪个数据透视表包含要检索的数据。

(2)第2个参数"<GroupName>[<Groupltem>;<FunctionName>]<data_field>"是一个文本字符串,它用引号括起来,描述了要汇总数据取值条件,其中:<GroupName>表示分组字段名称;<Groupltem>表示分组字段对应的数据项;<FunctionName>表示用于分类汇总的方法,包括“求和”、“计数”等;<data_field>表示取值字段名称,取值字段不只一个时,各字段之间需要用空格隔开。

整个公式可以理解为:

GETPIVOTDATA(透视表内任意单元格,“分类行字段名称[分类条件;分类方式]取值列字段名称组”)

注意img01

(1)“取值列字段名称组”部分也可以放在“分类字段名称”之间,但之间需要用空格隔开。

(2)在“自定义”分类汇总方式下,用户使用由Excel提供的自动生成数据透视表函数公式工具,获取分类汇总数据时,直接生成的函数公式产生的结果为“#REF!”错误。生成的错误公式为:

GETPIVOTDATA(pivot_table,"<GroupName>[<GroupItem>;data, <FunctionName>] data_field")

此时,需要根据正确的函数语法公式,将错误公式中的“data”部分手工删除后才能得到正确数据。