【发布时间】:2021-06-24 19:43:21
【问题描述】:
是否可以根据不同列中的值过滤表的行,而不知道用户选择显示哪些列?
这里有一个例子来说明问题:
A B C D
---------------------
1 aaa val val
2 bbb
3 ccc val
我想过滤此表并仅显示没有 C 和 D 为空的行。在我的示例中,这意味着仅显示第 1 行和第 3 行。只要我知道表格中显示了哪些列,这似乎并不复杂。我将定义一个新列(不是度量)并评估 C 和 D。如果 C 和 D 丢失,则返回“删除我”。然后,我将基于此度量进行过滤。
为了让事情变得更复杂,我希望我的用户能够根据需要从数据源添加列。坚持上面的例子意味着用户可能会将 E 列添加到表中,而我的“filter-measure”应该不再起作用,因为它不考虑 E。
现在是我的具体问题:
-
是否可以根据“如果 A 和 B 列未丢失且所有其他显示的列都丢失,则返回 1”之类的条件定义度量(无需明确提及所有其他列)。
-
有没有更好的方法来实现这一点?请记住,我必须使用 DirectQuery,它应用了一些限制,尤其是在 PowerQuery 和 M 方面。
我不确定是否可以为我的问题提供解决方案,但由于我刚开始使用 DAX,我无法确定。非常感谢任何帮助。
致以最诚挚的问候,朋友
【问题讨论】:
-
C和D是属性列吗?如果没有,则从您的模型中隐藏此列并添加度量 SumC = sum(table[C]) 等。Powerbi 具有在度量返回 BLNAK() 时自动删除行的功能
-
我不确定我是否理解正确。 C 和 D 可以是日期、日期时间、整数和字符串——几乎所有内容。在我的场景中,任何行都不会是完全空的,因为 A 和 B 总是“不为空”。因此,即使我更改了 C 和 D 的处理方式,Power BI 也不应该因为 A 和 B 而删除行。