1、getpivotdata函数语法:GETPIVOTDATA(data_field,pivot_table,field1,item1,field2,item2,…)
2、getpivotdata说明:
Data_field为包含要检索的数据的数据字段的名称,用引号引起 |
Pivot_table在数据透视表中对任何单元格、单元格区域或定义单元格区域的引用。该信息取决于哪个数据透视表包含要检索的数据;pivot_table其实就是表示的是数据透视表中左上角那个单元格,即Data_field对应的名字所在的单元格,如下即表示的是A3单元格 |
field1,item1,field2,item2为1到14对用于描述检索数据的字段名和项名称,可以任何次序排列。字段名和项名称(而不是日期和数字)用引号引起来。 |
在函数GETPIVOTDATA的计算中可以包含计算字段、计算项及自定义计算方法 |
如果pivot_table为包含两个或更多个数据=透视表的区域,则将从区域中最新创建的报表中检索数据 |
如果字段和项的参数描述是单个单元格,则返回此单元格的数值,无论是文本串、数字、错误值或其他值 |
如果某个项包含日期,则值必须表示为序列号或使用DATE函数,这样如果再其他位置打开电子表格,该值仍然存在。 |
例如:某个项引用了日期”1999年3月5日“,则应输入36224,或data(1999,3,5).时间可以输入为小数值或使用TIME函数来输入 |
如果pivot_table并不代表找到了数据透视表区域,则GETPIVOTDATA将返回错误值#REF! |
如果fieldi,itemi未描述可见字段,或者参数包含未显示的页字段(即在建数据透视表表格的时候,未显示在数据透视表中的字段),则GETPIVOTDATA函数将返回#REF |
(1)原始数据:
(2)经过数据透视表转化如下:将原始数据的所有字段都拉到数据透视表中
题目1:如果要获得品牌广告5月份在IPHONE端的投放收益,可以输入getpivotdata函数获取,如下:
=GETPIVOTDATA("订单原价",$A$3,"投放终端","IPHONE","业务类型","品牌","投放月份","5月")
题目2:如果要获得品牌广告每月在IPHONE端投放收益,并按照如下格式进行陈列:
如果用数据透视表,可以做到如下形式:
但是我们需要再次通过手工粘帖复制成想要的结果,如果用getpivotdata就可以直接获取:
在要获取的形式的订单原价单元格中输入:
=GETPIVOTDATA("订单原价",$A$3,"业务类型","品牌","投放月份",Q7,"投放终端","IPHONE")
注:Q7表示的是要获取的形式1月对应的单元格的引用
然后将此公式往下拉,一直拉到9月对应的右侧单元格即可,得到的结果如下:
这说明在IPHONE端没有1月、2月、4月、7月和8月的收入,在9月份虽然有收入,但是不是满足品牌条件的收入。
另:如果想没有收入的都显示为0,而不是显示#REF错误,那可以使用IFERROR函数,
如下:IFERROR(GETPIVOTDATA("订单原价",$A$3,"业务类型","品牌","投放月份",Q7,"投放终端","IPHONE"),0)
最后得到的结#REF的单元格都被0替代了。
如果透视表中没有把全部字段放进去,那么在使用getpivotdata函数的field1,item1对的时候,如果出现未在透视表中显示的字段,那么结果就会出错,返回#REF!。所以为了结果不出错,我个人一般是把所有的字段都选入到透视表中,或者是把需要筛选的字段都选到数据透视表中。但是不知道为什么全部选入透视表,语法也没写错,有的时候还是返回了#REF!错误。当我重新布局数据透视表后,同样的函数形式就出现了正确的结果,不知道为什么?如果有知道的可否给指点一下,我自己也慢慢去看看,如果找到答案,也会更新日志。