使用值筛选器行为(预览版)

借助 Power BI 中的值筛选器行为选项,可以影响 DAX 中存在的自动筛选机制,这些机制在筛选同一表中的多个列时发生。 这种行为被非正式地称为“自动存在”。

什么是值筛选器行为

筛选同一表中的多个列时,DAX 会明白,并非所有这些列中的值组合都是有效的,因此它会自动排除无效组合。 DAX 引擎生成了一个合并值筛选器,该筛选器不仅返回有效组合,还会影响测量的计算。 使用 值筛选器行为 设置可以在语义模型中更改此行为。 你可以决定是否要关闭合并值筛选器并改为打开独立值筛选器。 通过将值筛选器行为设置设置为“独立”来启用独立值筛选器(本文后面部分)会导致同一表中的多个筛选器保持独立,而不是将这些筛选器合并为一个 DAX 引擎。

了解值筛选器行为

在同一表上筛选多个列时,当前的默认值筛选器行为会将这些筛选器合并为一列,同时考虑存在的组合。 请考虑同一表中的以下两列:

  • 年,其中包含“2023”等值。
  • Month,其中包含“2024 年 1 月”等值。

如果同时筛选 Year 和 Month,因为这些列位于同一表中,值筛选器行为会将筛选器合并为一个,但只考虑存在的组合。 2024 年 1 月与 2023 年的组合不存在,并且不会包含在筛选器中。 然而,在某些情况下,结果令人吃惊。

让我们看看一个示例,其中我们提供了一个目录,其中按年份显示产品的颜色可用性。 这些产品的制造商多年来尝试以各种颜色制作产品:

显示 2022 到 2024 年产品颜色的表的屏幕截图。

多年来,我们有三种以各种颜色提供的产品。 请注意 2024 年没有提供红色产品的方式。 这在稍后会很重要。 现在,让我们通过添加以下度量值来计算产品数量:

Number of Products = COUNTROWS( 'Catalog' )`

以下矩阵显示了每年以各种颜色提供的产品数: 显示按年份和颜色显示的产品的矩阵的屏幕截图。

现在,让我们添加另一个度量值来计算所有年份的产品总数:

Number of Products All Years = CALCULATE ( [Number of Products], ALL ( 'Catalog'[Year] ) )

让我们将这些措施并排筛选到 2023 年,而只是蓝色和红色(因此没有黑色)。 可以看到产品数量为 4,这两种颜色的整个年份的产品数为 6:

显示年份、产品和颜色的表的屏幕截图。有两个切片器,一个设置为 Year 等于 2023,一个设置为颜色等于蓝色和红色。“产品数”度量值返回 4,“全年产品数”度量值返回 6。

如果我们将年份切换到 2024 年,我们预计“产品数量”度量值将返回 2,因为 2024 年只有两个产品是蓝色的,而当年没有红色产品。 除此之外,我们预计所有年份的产品数量都不会改变,因为毕竟,它应该在所有年份中计算。 但是,“所有年份的产品数量”从 6 更改为 5:

显示年份、产品和颜色的表的屏幕截图。有两个切片器,一个设置为 Year 等于 2024,一个设置为颜色等于蓝色和红色。“产品数”度量值返回 2,“全年”度量值返回 5。

所有年份的产品数量仍应为 6,而不是 5。 我们在这里看到的值筛选器行为正在起作用:它正在合并同一表上的筛选器,删除不存在的组合。 筛选器为 Year = 2024,颜色 = 蓝色或红色。 由于这两个筛选器位于同一表中,因此这些筛选器合并为一个筛选器,仅筛选存在的组合。 由于 2024 年没有红色产品,因此应用的筛选器为 Year = 2024,颜色 = 蓝色。 因此,所有年份的产品数量现在只计算蓝色产品的数量,而不是蓝色或红色产品的数量。 这将返回 5,如可以在表中确认的那样。

影响值筛选器行为

可以使用模型视图中属性窗格中语义模型上的值筛选器行为设置来控制语义模型中 是否想要此行为

模型视图中属性窗格的屏幕截图。突出显示值筛选器行为选项。

有三个选项可用:

  • 自动 - 这是默认设置,当前启用合并行为。 当我们结束此预览版时,设置为 “自动” 的新模型将使用“独立”,届时将宣布。
  • 独立 - 这会强制对同一表的筛选器保持独立。 将“值筛选器行为”设置设置为 “独立”后,所有年份的产品总数将按预期返回 6(如下所示)。
  • 合并 - 这强制为语义模型启用值筛选器行为,并将同一表中的筛选器合并为一个。 本示例中所有年份的产品数量继续返回 5。

下表显示了此设置对示例的影响: |值筛选器行为设置 |示例中应用的筛选器 |示例度量结果 | |--- |--- |--- | |自动|年份 = 2024,
Color = Blue|5| |独立|年份 = 2024,
颜色 = 蓝色或红色|6| | |合并 |年份 = 2024,
颜色 = 蓝色|5|

“值”筛选器行为 设置为“自动”意味着它现在等于合并,但将来将切换到“独立”进行新的语义模型。 如果将“值”筛选器行为设置为“独立”,则所有产品的数量将按预期返回 6,因为筛选器为 Year = 2024,Color = Blue 或 Red 且不再组合:

显示年份、产品和颜色的表的屏幕截图。有两个切片器,一个设置为 Year 等于 2024,一个设置为颜色等于蓝色和红色。“产品数”度量值返回 2,“全年”度量值返回 6。

后续步骤

以下文章可能很有用: