维度中的 DAX 最大日期忽略日期过滤器

DAX max date in dimension ignore filters on date

在我的 Power BI 模型中,我有一个事实 table (factSales),它通过代理键 DateId 链接到日期维度 (dimDate)。现在我想添加一个度量来获取每个客户的最大发票日期。但它应该是忽略上下文的最大日期(对于日期过滤器)。 (因此,如果我过滤 2020 年第一季度的所有销售额,那么我仍然希望最大发票日期在 2021 年)。

我是这样工作的:

在 factSales 中添加新列:

Invoice Date = RELATED(DimDate[Date])

在 factSales 中添加新度量:

Last Contract = 

            CALCULATE(     MAX(FactSales[Invoice Date]),
                                    ALL( DimDate )
                                )

这行得通,但是有更好的方法吗?没有额外的计算列。 (并且不使用双向过滤)。

您可以使用以下 dax 公式创建 return max date 的度量:

Measure = MAX(Sheet1[Date])

要始终显示最新日期而不按切片器过滤,您需要单击 slicer,然后转到 Format >Edit Interaction >click none on the specific visual。在以下情况下,最大日期仍然是 8 Nov 21,即使切片器的最新日期是 Sep 21

您可以在 CALCULATE 中使用 CROSSFILTER:

Last Contract =
CALCULATE (
    MAX ( Dates[Date] ),
    REMOVEFILTERS ( DimDate ),
    CROSSFILTER ( Sales[Date], Dates[Date], BOTH )
)

试试这个:

Last Contract =
CALCULATE ( MAX ( DimDate[Date] ), ALL ( DimDate ), FactSales )

这从 DimDate[Date] 上的切片器中删除了过滤,仍然将 FactSales 作为过滤器应用 table。