【问题标题】:DAX max date in dimension ignore filters on date维度中的 DAX 最大日期忽略日期过滤器
【发布时间】:2021-06-22 11:46:54
【问题描述】:

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

这就是我的工作方式:

添加新列factSales:

Invoice Date = RELATED(DimDate[Date])

在 factSales 中添加新度量:

Last Contract = 

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

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

【问题讨论】:

    标签: powerbi dax


    【解决方案1】:

    您可以在 CALCULATE 中使用 CROSSFILTER:

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

    【讨论】:

      【解决方案2】:

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

      Measure = MAX(Sheet1[Date])
      

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

      【讨论】:

      • 问题是不仅切片器可以过滤,而且例如按年/月分组的表也会过滤我的数据。
      • 我认为是因为您使用了related 功能,它为什么还要过滤您的scorecard?直到今天我才需要使用related,尽管将来我不确定......当您排除slicer 来过滤您的表格时,它不会根据我的测试根据切片器值更改值跨度>
      【解决方案3】:

      试试这个:

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

      这会从DimDate[Date] 上的切片器中删除过滤,但仍将FactSales 用作过滤表。

      【讨论】:

        猜你喜欢
        • 2020-03-14
        • 2019-10-07
        • 1970-01-01
        • 2018-03-28
        • 1970-01-01
        • 2018-01-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多