Table of Contents

代码操作 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 类别,这意味着它并非通用建议或最佳实践。 相反,该代码操作提供了一种快速以不同方式改写代码的方法,例如作为更大规模重构的一部分。 应用该代码操作后,在进行进一步编辑之前,你可能会看到 ImprovementReadability 代码操作,建议将代码改回原始状态。