ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的酷贴 > 数据透视表 > GETPIVOTDATA 函数用途及参数简述

GETPIVOTDATA 函数用途及参数简述

作者:绿色风 分类: 时间:2022-08-18 浏览:159
楼主
lrlxxqxa
先引一段帮助,方便理解:


返回存储在数据透视表中的数据。如果报表中的汇总数据可见,则可以使用函数 GETPIVOTDATA 从数据透视表中检索汇总数据。
  通过以下方法可以快速地输入简单的 GETPIVOTDATA 公式:在返回值所在的单元格中,键入“=”,然后在数据透视表中单击包含要返回的数据的单元格。

(,,field1,item1,field2,item2,...)
Data_field    为包含要检索的数据的数据字段的名称,用引号引起。
Pivot_table    在数据透视表中对任何单元格、单元格区域或定义的单元格区域的引用。该信息用于决定哪个数据数据透视表包含要检索的数据。
Field1, Item1, Field2, Item2    为 1 到 14 对用于描述检索数据的字段名和项名称,可以任何次序排列。字段名和项名称(而不是日期和数字)用引号引起来。对于 OLAP 数据透视表,项可以包含维的源名称,以及项的源名称。OLAP 数据透视表的一对字段和项如下所示:
"[产品]","[产品].[所有产品].[食品].[烤制食品]"

  • 在函数 GETPIVOTDATA 的计算中可以包含计算字段、计算项及自定义计算方法。
  • 如果 pivot_table 为包含两个或更多个数据透视表的区域,则将从区域中最新创建的报表中检索数据。
  • 如果字段和项的参数描述的是单个单元格,则返回此单元格的数值,无论是文本串、数字、错误值或其他的值。
  • 如果某个项包含日期,则值必须表示为序列号或使用 DATE 函数,这样如果在其他位置打开电子表格,该值仍然存在。例如,某个项引用了日期“1999 年 3 月 5 日”,则应输入 36224 或 DATE(1999,3,5)。时间可以输入为小数值或使用 TIME 函数来输入。
  • 如果 pivot_table 并不代表找到了数据透视表的区域,则函数 GETPIVOTDATA 将返回错误值 #REF!。
  • 如果参数未描述可见字段,或者参数包含未显示的页字段,则 GETPIVOTDATA 函数将返回 #REF!。===================================================================

    使用透视表过程中,在外部键入等号然后选择内部的单个单元格时,会自动输入 GETPIVOTDATA 函数。如在实例表中要调用李连霞成功的金额,在E5输入=,单击透视表区域内B5,则自动生成公式:
    1. =GETPIVOTDATA("金额",$A$3,"姓名","李连霞","状态","成功")

     

    GETPIVOTDATA 将从数据透视表中检索数据。该函数的最大好处是,当透视表布局更改时它能继续检索正确的数据。如果在布局更改时某块数据的单元格位置也更改了,函数仍将找到并返回正确的值,不管它在哪个单元格。

    先说一下GETPIVOTDATA函数的第2个参数:pivot_table

    第二个参数是对透视表本身的引用,它可以是透视表中任意单元格、分配给透视表的数据区域名或存储在表格左上角内的单元格的标志。
    后面的参数则告知excel所需数据的类型,它包含在双引号中,指定各字段名,这些字段名在表中的交叉点就是要获取的数据。第2个参数中的各字段名之间要用逗号隔开。
    GETPIVOTDATA函数获取的数据源必须是在透视表中可见的,否则将返回错误值“#REF!”

    这里有一点需要注意:GETPIVOTDATA函数的第一参数能否用单元格引用来代替呢?
    如实例中黄色F5单元格,
    1. =GETPIVOTDATA(A3,$A$3,"姓名","李连霞","状态","成功")
    返回错误值“#REF!”

    处理这种错误的方法有两种
    1、把第一参数用T()转换;如G5单元格公式
    1. =GETPIVOTDATA(T(A3),$A$3,"姓名","李连霞","状态","成功")
    2、把第一参数用&""处理;如H5单元格公式
    1. =GETPIVOTDATA(A3&"",$A$3,"姓名","李连霞","状态","成功")


    2007 中 选中数据透视表任意单元格——数据透视表工具——选项功能区——选项(下拉小箭头)——把“生成GETPIVOTDATA”的钩勾选或者去掉控制打开还是关闭;

    2003 中  在 数据透视表 工具栏上, 单击 工具栏选项 箭头。 此箭头显示在右边末尾工具栏,单击 数据透视表 工具栏上现在出现 “生成 GetPivotData 按钮”,当您单击此按钮, 控制打开还是关闭。
    GETPIVOTDATA 实例.rar
    GETPIVOTDATA 实例2007.rar
  • 2楼
    litk0620
    长知识啦  对我工作太有用了
    3楼
    悠悠雨
    study
    4楼
    水星钓鱼
    学习下。第一参数可以用单元格引用这个发现很不错。
    5楼
    hjinshanz
    太好了,长见识。
    6楼
    gouweicao78
    GETPivotData函数在Excel2000中的语法是不同的,这个语法在2003、2007、2010版中都可以使用,只不过后面版本的Excel帮助文件中没看到这样的用法。
    在“疑难千寻千解”丛书之《Excel 2010 函数与公式》 疑难252中 ,披露了这个用法,微软excel2003官方网站表述可以查看:


    本文分步介绍如何使用 GETPIVOTDATA 函数来从数据透视表中检索数据。Microsoft Excel 2000 有一个新工作表函数 GETPIVOTDATA,使您可以使用数据透视表数据的数据透视表外部的。  


    回到顶端
    GETPIVOTDATA 函数允许您从数据透视表,检索汇总数据的前提是在数据透视表中可见的数据。  

    下面是 GETPIVOTDATA 函数语法    = GETPIVOTDATA(pivot_table, name)  
    其中 pivot_table 参数是对您要分析的数据透视表中的单元格的引用。pivot_table 参数也可以在数据透视表,包含数据透视表或存储在数据透视表上方单元格中标签的单元格区域的名称中的单元格区域。在名称参数是一个文本字符串,它用引号括起来,并描述了要汇总的数据。


    回到顶端
  • 保存并关闭任何打开的工作簿,然后创建一个新的工作簿。
  • 在 Sheet1 中键入以下数据:    A1: Name    B1: Sales    C1: Region   A2: bob     B2: 1        C2: east   A3: sue     B3: 2        C3: west   A4: bob     B4: 3        C4: west   A5: mary    B5: 4        C5: west   A6: sue     B6: 5        C6: north   A7: bob     B7: 6        C7: south   A8: sue     B8: 7        C8: east                                       

  • 选择 A1:C8,然后单击在 菜单上的 。
  • 对话框中选择 ,如果未选中,然后单击 。
  • 对话框中单击 。
  • 对话框中单击 。
  • 按钮拖到行字段,将 按钮拖到数据字段拖动到列字段的 按钮。单击 。
  • 对话框中单击 ,请单击工作表 Sheet1 上的单元格 A10 (这放置引用工作表 Sheet1! $ A $ 10 在 框中),然后单击 。
  • 选择单元格 A10 (此步骤选择整个数据透视表),指向 菜单上的 ,然后单击 。
  • 对话框 框中键入 PT1,然后单击 。  

    此步骤定义了数据透视表作为 PT1 范围。
  • 单元格 E1 中键入以下公式:    = GETPIVOTDATA(PT1,"bob east")
    结果是值为 1,因为 bob"东"区域中相对于全部总计是 1。
  • 在单元格 E2 中键入以下公式:    =GETPIVOTDATA(PT1,"west")
    结果是 9 的一个值,因为"西部"地区中的总和为 9。
  • 在 E3 单元格中,键入以下公式:    = GETPIVOTDATA(PT1,"sum of sales")
    结果是 28 的一个值,因为在所有地区的所有销售的总和就是 28。
  • 7楼
    君柳
    GETPivotData 用法再温习
    8楼
    tracy1984
    学习~~~~~~~~~~~~
    9楼
    乃么格记僵特了
    这才完整了呀,难怪我看一本书中某个案例看不懂。它就是用了2000版的函数格式,却木有说明。我套用新版格式,发现这个账死活轧不平。谢谢总版主咯。
    10楼
    jiujiu8900
    谢谢分享
    11楼
    gouweicao78
    Excel疑难千寻千解丛书之《Excel2010函数与公式》书疑难252专门讲解了一下,这个语法还是很经典的。
    12楼
    Nexus
    Thanks a lot!
    13楼
    miuoomiu
    刚开始学用getpivotdata来做报表,关于“GETPIVOTDATA函数获取的数据源必须是在透视表中可见的,否则将返回错误值“#REF!””这句,我有疑问:感觉基本用法不复杂,要哪个条件就在后面添。比如: =GETPIVOTDATA(" KG",var!$A$3,"'period'",$C$2,"Category",$B8,"product",A8)
    (要取period=c2,category=b8,product=a8的销售重量kg,透视表名叫var,范围a3开始;透视表还包括customer,包装规格等字段)

    这个刚开始是成功的,但当透视表结构(我指字段简单拉前/拉后,或者某字段折叠/展开,或者某个字段取消/增加合计段)的时候,即便我原来公式里涉及的数据源都仍可见,但原来的那个查询就有时正常显示,有时就显示ref#

    这个简单的多字段条件查询,对透视表字段折叠,顺序,是否有小计字段有关系吗??我看了好些例子感觉没有的阿,请指点一下~~谢谢~~
    14楼
    lrlxxqxa
    要看具体情况的,如果透视表布局的变化引起getpivotdata的参数失效就会出错了。
    15楼
    miuoomiu
    我说的变化只是字段前后挪一挪,或者字段展开/折叠,或者字段增加/取消小计而已。。
    16楼
    lrlxxqxa
    如果getpivotdata参数都是静态数据就很可能导致错误了。
    17楼
    miuoomiu
    没有,参数基本是动态的
    18楼
    hexing588
    没用过
    19楼
    fish-2013

    免责声明

    有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
    ------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

    评论列表
    sitemap