【问题标题】:DAX - Filter rows by evaluating the displayed columns of a tableDAX - 通过评估表的显示列来过滤行
【发布时间】: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。

现在是我的具体问题:

  1. 是否可以根据“如果 A 和 B 列未丢失且所有其他显示的列都丢失,则返回 1”之类的条件定义度量(无需明确提及所有其他列)。

  2. 有没有更好的方法来实现这一点?请记住,我必须使用 DirectQuery,它应用了一些限制,尤其是在 PowerQuery 和 M 方面。

我不确定是否可以为我的问题提供解决方案,但由于我刚开始使用 DAX,我无法确定。非常感谢任何帮助。

致以最诚挚的问候,朋友

【问题讨论】:

  • C和D是属性列吗?如果没有,则从您的模型中隐藏此列并添加度量 SumC = sum(table[C]) 等。Powerbi 具有在度量返回 BLNAK() 时自动删除行的功能
  • 我不确定我是否理解正确。 C 和 D 可以是日期、日期时间、整数和字符串——几乎所有内容。在我的场景中,任何行都不会是完全空的,因为 A 和 B 总是“不为空”。因此,即使我更改了 C 和 D 的处理方式,Power BI 也不应该因为 A 和 B 而删除行。

标签: powerbi dax


【解决方案1】:

这里的例子(这是一个奇怪的概念,但对你有用)左侧栏;右侧 AA/b 作为列作为度量:

Sum_C = MAX(Example[C])
Sum_D = sum(Example[D])
sum_E = min(Example[E])

这是因为如果 C、D、E 在第 2 行有 null (例如,如果在 C 中,第 2 行有空格而不是 null,这将不再有效);

【讨论】:

    猜你喜欢
    • 2022-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2017-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多