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