DAX FILTER使用DATE()文字,但不使用SELECTEDVALUE()



在PowerBI中,我有一个价格表(ItemID、ItemName、Price、EffectiveStartDate、EffectiveEndDate(,我正试图返回在给定日期生效的所有价格(由用户或评估上下文选择(。在我的报表画布上,我看到了一个包含所有项目和详细信息的表(如上(。如果我声明一个变量并为其分配一个文字值,那么过滤器就可以正常工作。。。。像这样:

VAR CurrentDate = 
DATE(2022, 3, 15)
RETURN 
FILTER ( 
Ingredients, 
[EffectiveStartDate] < CurrentDate 
&& [EffectiveEndDate] > CurrentDate 
)

但是,如果我尝试为CurrentDate分配我的采集器度量值,它就会失败。(不知何故,不等式过滤器被忽略了(。我有一个切片器(下拉列表(来选择日期,SELECTEDVALUE('DimDate'[date}(来检索值。但当我试图在过滤器中使用它时,它失败了:

VAR CurrentDate = 
SELECTEDVALUE('DimDate'[Date])
RETURN
FILTER ( 
Ingredients, 
[EffectiveStartDate] < CurrentDate 
&& [EffectiveEndDate] > CurrentDate 
)

知道为什么会发生这种事吗?我该如何修复它?

我原本希望这两个过滤器的作用相同(文字过滤器使用DATE((和一个变量,但事实并非如此。当我使用SELECTEDVALUE((设置变量的值时,它似乎忽略了filter((语句中的变量。

如果您希望计算依赖于切片器,您需要Measure,而不是Calculated列或Calculated表。计算列和计算表在刷新时生成并物理存储在模型中,因此切片器可以对它们进行筛选,但切片器不能更改计算值。

度量不是持久性的,而是根据过滤器和切片器的更改根据需要计算的。例如,您可以使用以下方法来过滤成分:

Filtered Ingredients = 
VAR CurrentDate = SELECTEDVALUE(DimDate[Date])
RETURN 
CALCULATE(
MAX(Ingredients[Name]),
Ingredients[EffectiveStartDate] < CurrentDate
&& Ingredients[EffectiveEndDate] > CurrentDate
)

最新更新