想象一下,我在工厂中有一个质量控制来检索每个产品的状态 STATEID 1 - 很好 2 - 可接受 3 - 副产品 4 - 浪费
我的表'StateIdHistory'每次都给我每个ProductId的状态。 我正在创建一个数据透视表,我想在其中过滤掉特定数据范围中的StateId = 3。所以我过滤我的报告选择“3”。
想象一下,我想将这个模型用于其他没有StateId = 3的数据库。我的数据模型将被销毁。尽管有或没有数据,我能以某种方式将过滤器修复为等于3吗? VBA?如果3仍然不存在,它将检索0或空白单元格......
提前致谢!!
答案 0 :(得分:2)
答案是为状态维创建一个单独的表:
这应该连接到您的StateIDHistory,然后过滤器中的状态应该来自状态表。这不仅会显示所有选项,无论它们是否有数据,而且对于更复杂的模型来说也是一种很好的做法。
答案 1 :(得分:1)
上面提到PsyMann的优秀答案的快速评论;您必须将数据透视表设置为保留已删除项目的数据,或选择“显示没有数据的项目”#34;将会变灰。
通过右键单击表格,选择数据透视表选项,数据并确保"保留从数据源中删除的项目"来执行此操作。设置为"自动"或"最大"
令人沮丧的是,您无法使此字段依赖,因此这意味着所有字段都将保留过时的数据,这些过时的项目现在将显示在数据切片等中。
答案 2 :(得分:0)
我在我发送的异常报告中遇到了同样的问题..它在过滤器返回一些数据的情况下运行正常,其中没有数据过滤器被删除并显示所有数据。
我将过滤器列从Pivot 过滤器部分移动到行部分,然后使用列的标签过滤器选项指定过滤器然后我隐藏了过滤器列。这工作正常。
此方法存在一些限制,因为您无法选择要过滤的多个值,标签过滤器的选项有限。我的过滤器基于我在基础数据中添加的是/否类型列来识别异常记录,因此这种方法对我来说很好。