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

时间:2021-06-22 11:46:54

标签: powerbi dax

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

这就是我让它工作的方式:

在 factSales 中添加新列:

Invoice Date = RELATED(DimDate[Date])

在 factSales 中添加新的度量:

Last Contract = 

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

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

3 个答案:

答案 0 :(得分:0)

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

Measure = MAX(Sheet1[Date])

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

,最大日期仍然是 Sep 21

enter image description here

答案 1 :(得分:0)

您可以在 CALCULATE 中使用 CROSSFILTER:

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

答案 2 :(得分:0)

试试这个:

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

这通过仍将 DimDate[Date] 用作过滤器表来移除 FactSales 上的切片器的过滤。