9.2.2 Excel 2000版本中的函数语法
在Excel 2000版本中开始新增加了数据透视表函数,虽然Excel 2003版本中该函数的语法得到了修改或完善,并一直沿用至Excel 2010版本,但出于兼容性的要求,同时也保留了Excel 2000版本下的语法用法,从而形成了另一种特殊语法用法。
该函数在Excel 2000版本中的语法如下:
= GETPIVOTDATA(pivot_table, name)
其中pivot_table表示对数据透视表中任何单元格或单元格区域的引用,该信息用于决定哪个数据透视表包含要检索的数据。
name参数是一个文本字符串,它用引号括起来,描述要汇总数据取值条件,可以是:<data_field field1 item1 field2 item2 ……field n item n>,或
<data_field field1[item1] field2[item2] ……field n[item n]>
甚至可以进一步简化为:
<data_field item1 item2 ……item n>
整个公式可以理解为:
GETPIVOTDATA(透视表内任意单元格, “取值列字段名称组条件项1 条件项2 ……条件项n”) 该语法的优点在于公式比较简捷,缺点是语法中会出现多个参数条件罗列在一起,不便使用者阅读和理解。
9.3.2 使用Excel 2000版函数公式静态获取数据
1、获取销售总金额:
在K22单元格输入Excel 2000版数据透视表函数公式,计算结果为248122:
=GETPIVOTDATA($A$2,"金额")
公式解析:
第1个参数,表示数据透视表中任意一个单元格,本例中为$A$2。
第2个参数,为取值条件文本字符串,本例中只有"金额"字段名称一个条件,表示只获取“金额”的合计数。
2、获取江苏分公司销售总数量
在K23单元格输入数据透视表函数公式,计算值为10500:
=GETPIVOTDATA($A$2,"数量江苏分公司")
公式解析:
第1个参数,表示数据透视表中任意一个单元格,本例中为$A$2
第2个参数,为取值条件文本字符串,本例中为“数量江苏分公司”,其中“数量”为计算字段名称,“江苏分公司”为具体计算条件,该条件表示要求获取江苏分公司数量合计值。
注意:取值条件文本字符串中,各条件值之间需要用空格隔开,各条件值可以相互变换位置。
3、获取浙江分公司2012年3月2日销售金额
在K24单元格输入数据透视表函数公式,计算结果为45039:
=GETPIVOTDATA($A$2,"金额浙江分公司2012-3-2")
公式解析:
第1个参数,表示数据透视表中任意一个单元格,本例中为$A$2;
第2个参数,为取值条件文本字符串,本例中为“金额浙江分公司2012-3-2”,其中“金额”为计算字段名称,“浙江分公司”和“2012-3-2”为具体计算条件,该条件表示要求获取浙江分公司2012年3月2日的金额合计值。
注意:取值条件文本字符串中,日期格式必须与透视表中的日期格式一致。
4、海南分公司2012年3月1日B产品销售数量
在K25单元格输入数据透视表函数公式,计算结果为600
=GETPIVOTDATA($A$2,"数量B产品海南分公司2012-3-1")
公式解析:
第1个参数,表示数据透视表中任意一个单元格,本例中为$A$2;
第2个参数,为取值条件文本字符串,本例中为“数量B产品海南分公司2012-3-1”,其中“数量”为计算字段名称,“B产品”、“海南分公司”、“2012-3-1”为具体计算条件,该表示要求获取海南分公司2012年3月1日B产品的数量值。
使用Excel 2000版数据透视表函数可以简化函数表达式,但条件参数排列在一起,不便于理解,计算结果见图9-8所示。
图9-8 数据透视表函数计算结果
9.4.2 使用Excel 2000版函数公式动态获取数据
图9-9是使用数据透视表汇总的ABC公司各分公司2012年3月份销售表,现需要使用Excel 2000版中的数据透视表函数公式同样可以实现动态获取数据透视表数据。
图9-9 ABC公司销售汇总透视表
1、获取销售总金额
获取销售总金额的Excel 2000的数据透视表函数公式如下,计算结果为251443。
=GETPIVOTDATA($A$3,C5)
公式解析:
第1个参数为数据透视表中任意一个单元格,本例为A3单元格的绝对引用格式。
第2个参数为计算字段名称,本例中为C5单元格引用值“金额”。
2、获取各分公司销售数量合计数
在C47单元格输入如下公式,并将公式向下拖动填充值C49单元格,计算得到的值如图9-13所示。
=GETPIVOTDATA($A$3,$D$5&" "&$B47&"分公司")
图9-13 获取各分公司销售数量合计数
公式解析:
第1个参数为数据透视表中任意一个单元格,本例为A3单元格的绝对引用格式。
第2个参数为取值条件字符串,其中$D$5为计算字段名称,该单元格引用取值为“数量”;“$B47&"分公司"”,为各分公司名称,中间用文本连接符“&”连接一个空格,形成一个动态取值条件字符串,值为“数量海南分公司”。
3、获取各分公司C产品销售金额合计数
在C53单元格输入如下公式,并将公式向下拖动填充至C55单元格,计算得到的值如图9-14所示。
=GETPIVOTDATA($A$3,$C$52&" "&$A$52&" "&B53&"分公司")
图9-14 获取各分公司C产品销售金额合计数
公式解析:
第1个参数为数据透视表中任意一个单元格,本例为A3单元格的绝对引用格式。
第2个参数为取值条件字符串,其中$C$52为单元格引用,计算值为计算字段名“金额”;“$A$52”为单元格取值,计算值为“C产品”;“$B53&"分公司"”,为各分公司名称。
各条件之间还需要使用文本连接符“&”连接一个空格,形成一个动态取值条件字符串,值为“金额C 产品海南分公司”。
4、获取各分公司2012年3月2日各产品销售数量
在C60单元格输入如下公式,并将公式向各向下拖动填充至F62单元格,计算得到的值如图9-15所示。
=GETPIVOTDATA($A$3,$B$58&" "&$B60&" "&C$59&"分公司"&"
"&TEXT($A60,"yyyy-m-d"))
图9-15 获取各分公司2012年3月2日各产品销售数量
公式解析:
第1个参数为数据透视表中任意一个单元格,本例为A3单元格的绝对引用格式。
第2个参数为取值条件字符串计算字段名称,其中:$B$58为单元格绝对引用,值为计算字段名称“数量”,$B60为单元格相对引用,值为各产品名称;C$59&"分公司"为各分公司名称;TEXT($A60,"yyyy-m-d"),使用TEXT函数将A60单元格引用日期型取值转为与数据透视表中日期格式。
各条件之间还需要使用文本连接符“&”连接一个空格,形成一个动态取值条件字符串,值为“数量A产品海南分公司2012-3-2”。
注意:在EXCEL 2000版数据透视表函数中,当参数引用的单元格是日期型数值时,该日期格式必须与透视表中相应的日期数据项格式一致。
本篇文章节选自《Excel 2010数据透视表大全》ISBN:9787115300232 人民邮电出版社。