将过滤器添加到数据透视表

Posted

技术标签:

【中文标题】将过滤器添加到数据透视表【英文标题】:Add filter to PivotTable 【发布时间】:2020-07-10 03:41:31 【问题描述】:

我在脚本中创建了数据透视表。假设这个数据透视表被命名为 pivotTable。我想在这个表中添加一个过滤器,所以我使用 FilterCriteria 类来实现这一点。

我可以这样做:

pivotTable.addFilter(colNumber, SpreadsheetApp.newFilterCriteria().setVisibleValues(["dog", "cat"]).build());

执行此函数后,pivotTable 中仅保留索引为 colNumber 的列中值为“cat”或“dog”的行。现在我想做这样的事情:

pivotTable.addFilter(anotherColNumber, SpreadsheetApp.newFilterCriteria().whenCellNotEmpty().build());

...然后我得到异常:

Exception: The pivot table filter criteria should only contain visible values.

我的问题是:

我不明白我收到的异常(“可见值”究竟是什么意思?)。 我不知道我做错了什么。 我找不到这个或类似问题的答案。 我发现的大多数答案都与 javascript 相关,因此对我没有帮助。 https://developers.google.com/apps-script/reference/spreadsheet 文档中没有示例。

感谢您的帮助!

【问题讨论】:

如果你先pivotTable.addFilter(anotherColNumber, SpreadsheetApp.newFilterCriteria().whenCellNotEmpty().build());会发生什么? 如果我更改条件顺序,错误是一样的。即使我只有一个条件 whenCellNotEmpty() ,我也会遇到同样的异常。 “可见值”到底是什么意思 这可能意味着您只能将.setVisibleValues() 作为过滤条件。您可以在 Google 表格中手动设置其他过滤条件吗? @TheMaster 是的,我可以手动设置这个或其他标准。如果我不能用脚本做到这一点会很奇怪,所以我认为我犯了一些错误。 【参考方案1】:

不幸的是,目前,数据透视表中的“按条件过滤”似乎无法以编程方式进行操作。只有“按值过滤”可以使用setVisibleValues()进行操作。考虑创建issue in the issuetracker在issue由Fi Teach创建的issue上添加一个星号(★)

【讨论】:

感谢您的纠正,我也遇到了与过滤条件匹配的相同问题。whentextcontains 我在问题跟踪器上创建了问题:issuetracker.google.com/issues/166291466

以上是关于将过滤器添加到数据透视表的主要内容,如果未能解决你的问题,请参考以下文章

使用 VBA 根据下拉选择过滤多个数据透视表

VBA数据透视表:添加过滤器

将数据添加到 Laravel 数据透视表

VBA:根据单元格值过滤数据透视表

无法将外键约束添加到数据透视表

如何使用或过滤器从 Excel 中的 OLAP 多维数据集数据透视表中获取数据