加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]EXCEL函数之getpivotdata

(2015-05-25 11:21:51)
标签:

转载

原文地址:EXCEL函数之getpivotdata作者:欢乐多
      最近在学习EXCEL函数,发现getpivotdata函数用处还是比较大的。getpivotdata函数是在数据透视表基础上,使用的一个函数,该函数(1)比数据透视表灵活,可以在数据透视表的基础上,按照自己需要的格式获取数据;(2)数据透视表3维以上看起来就会很杂乱,而getpivotdata函数可以通过最多14对的filed,item对条件进行筛选得到最后的结果,不用人费眼的去寻找,使结果一目了然。
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
3、getpivotdata例子:
(1)原始数据:
http://s16/mw690/002UNpyBgy6IQoU8gFN9f&690
(2)经过数据透视表转化如下:将原始数据的所有字段都拉到数据透视表中
http://s8/mw690/002UNpyBgy6IQp4ECSHb7&690
题目1:如果要获得品牌广告5月份在IPHONE端的投放收益,可以输入getpivotdata函数获取,如下:
=GETPIVOTDATA("订单原价",$A$3,"投放终端","IPHONE","业务类型","品牌","投放月份","5月")

题目2:如果要获得品牌广告每月在IPHONE端投放收益,并按照如下格式进行陈列:
http://s7/mw690/002UNpyBgy6IQpxSuTY46&690
如果用数据透视表,可以做到如下形式:
http://s16/mw690/002UNpyBgy6IQpIrY5x0f&690

但是我们需要再次通过手工粘帖复制成想要的结果,如果用getpivotdata就可以直接获取:
在要获取的形式的订单原价单元格中输入:
=GETPIVOTDATA("订单原价",$A$3,"业务类型","品牌","投放月份",Q7,"投放终端","IPHONE")
注:Q7表示的是要获取的形式1月对应的单元格的引用
然后将此公式往下拉,一直拉到9月对应的右侧单元格即可,得到的结果如下:
http://s6/mw690/002UNpyBgy6IQqg2Qfz45&690
这说明在IPHONE端没有1月、2月、4月、7月和8月的收入,在9月份虽然有收入,但是不是满足品牌条件的收入。
另:如果想没有收入的都显示为0,而不是显示#REF错误,那可以使用IFERROR函数,
如下:IFERROR(GETPIVOTDATA("订单原价",$A$3,"业务类型","品牌","投放月份",Q7,"投放终端","IPHONE"),0)
最后得到的结#REF的单元格都被0替代了。

如果透视表中没有把全部字段放进去,那么在使用getpivotdata函数的  field1,item1对的时候,如果出现未在透视表中显示的字段,那么结果就会出错,返回#REF!。所以为了结果不出错,我个人一般是把所有的字段都选入到透视表中,或者是把需要筛选的字段都选到数据透视表中。但是不知道为什么全部选入透视表,语法也没写错,有的时候还是返回了#REF!错误。当我重新布局数据透视表后,同样的函数形式就出现了正确的结果,不知道为什么?如果有知道的可否给指点一下,我自己也慢慢去看看,如果找到答案,也会更新日志。



0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有