代码操作 RW002(重写):使用 FILTER 重写
描述
在 CALCULATE 的筛选参数中使用标量谓词,等价于使用 FILTER 的 1 列表表达式。
示例 1
更改前:
CALCULATE([Total Sales], Products[Color] = "Red")
更改为:
CALCULATE(
[Total Sales],
FILTER(
ALL(Products[Color]),
Products[Color] = "Red")
)
)
示例 2
更改前:
CALCULATE([Total Sales], KEEPFILTERS(Products[Color] = "Red"))
更改为:
CALCULATE(
[Total Sales],
FILTER(
VALUES(Products[Color]),
Products[Color] = "Red")
)
)
为什么 Tabular Editor 会建议这么做?
当你需要加入更复杂的筛选逻辑时,这种重写会很有用。
Note
该代码操作属于 Rewrites 类别,这意味着它并非通用建议或最佳实践。 相反,该代码操作提供了一种快速以不同方式改写代码的方法,例如作为更大规模重构的一部分。 应用该代码操作后,在进行进一步编辑之前,你可能会看到 Improvement 或 Readability 代码操作,建议将代码改回原始状态。