Googlesheets中的GETPIVOTDATA在选择日期列时似乎无法正常工作(#REF错误)

时间:2018-03-27 14:23:48

标签: google-sheets

我正在尝试让GETPIVOTDATA在使用日期时正常工作。我在这里看了很多关于GETPIVOTDATA的问题,但没有一个在引用中使用日期。

我可以创建一个包含以下数据的数据透视表,并提取给定分区和细分的总数。但即使我的代码在MS Excel中运行,我也无法破解代码来处理Google桌面版GETPIVOTDATA中的日期。

此数据来自googledocs支持页面:https://support.google.com/docs/answer/6167538?hl=en

划分细分产品编号单位数每单位日期价格
东1 1 14 3/1/2018 $ 10
东2 1 15 3/1/2018 $ 11
west 1 1 11 3/3/2018 $ 10
west 2 1 21 3/4/2018 $ 9
东3 1 16 3/1/2018 $ 8
west 3 1 18 3/6/2018 $ 12
east 4 1 11 3/7/2018 $ 9
东1 2 10 3/1/2018 $ 9
东2 2 9 3/9/2018 $ 13
west 1 2 12 3/10/2018 $ 10
west 2 2 15 3/1/2018 $ 10
东3 2 12 3/12/2018 $ 9
west 3 2 16 3/1/2018 $ 12
东4 2 12 3/14/2018 $ 9

数据透视表锚定在H1中,列出的列是 除法,细分,日期,单位数的和 分别在单元格H1,I1,J1,K1中

23  =GETPIVOTDATA(K1,H1,"division", "east", "subdivision", 4) 
#REF!   =GETPIVOTDATA(K1,H1,"division", "east", "subdivision", 4, "Date", datevalue("2018-3-07")) 
#REF!   =GETPIVOTDATA(K1,H1,"division", "east", "subdivision", 4, "Date", DATE(2018, 3, 7)) 

它应该返回" 11"这是东,4和3/7的交叉点

#REF错误返回"在数据透视表中找不到字段组合,用于函数GETPIVOTDATA"即使看起来所有的字段都列出来了。正如您所看到的,如果我使用两个除法和细分,我可以得到我的汇总值,但是当我添加Date字段时则不能。我尝试了多种方法来匹配pivottable中的日期值。

我很慌张。我在这里错过了什么傻事?在建议之前,请检查您的答案是否真的适用于GoogleSheets :) 谢谢!

3 个答案:

答案 0 :(得分:1)

我知道我来晚了,但是这也困扰着我,我无法弄清。

我终于意识到GETPIVOTDATA方法使用了总计行,如果没有正确的总计,则会抛出错误。

希望这可以帮助像我一样找到它的人。

答案 1 :(得分:0)

事实证明,日期参数(pivot_item)的值参数(技术上是original_column参数)必须是与日期格式匹配的 text >因为它是在数据透视表的源中(即在数据中)格式化的。

因此,如果在原始数据中将日期项目的格式设置为3/7/2018,则无论您如何在数据透视表中设置日期格式,有效的公式都是:

=GETPIVOTDATA(K1,H1,"division", "east", "subdivision", 4, "Date", "3/7/2018")

如果在数据中,随后会再次出现相同的值,但是格式不同,例如3/7(无年份),据我所知,该值的首次出现将用作参考格式。因此,假设第一个3/7/2018数据点是这样格式化的,则上面的公式将捕获所有3/7/2018数据*。

如果数据中的另一个日期的格式设置为3/8 Thu(第一次出现),则该文本需要在公式的“数据透视表”项中使用。

Google对“数据透视项目”的定义是:

pivot_item…-[可选]可重复

行或列的名称 显示在与 original_column 相对应的数据透视表中 要检索。

它表示行或列的 名称 。也许他们对此非常直白,但考虑到此功能是从Excel借来的,并且Excel使用 value 而不依赖其格式,因此很可能不是这样。

*取决于其他枢轴列/项目(分区和细分)

答案 2 :(得分:0)

结合bsoo和Amos47的答案为我解决了这个问题。

  1. 需要确保您在数据透视表上勾选了“显示总计”
  2. 对于日期,请不要使用datevalue(“ 2018-3-07”)-而是使用文本函数来匹配数据透视表中的格式。这可以根据电子表格的位置而有所不同。例如,如果引用单元格A4,则可以使用= GETPIVOTDATA(K1,H1,“ division”,“ east”,“ subdivision”,4,“ Date”,text(A4,“ yyyy-mm-dd”) )。

使用日期,我发现使用ISO 8601格式“ yyyymmdd”或月份的文本版本“ dd-mmm-yy”有助于避免在美国和欧洲格式之间切换时出错。