DAX 防止日期过滤器影响计算 REMOVEFILTERS 和 ALL 不起作用

问题描述 投票:0回答:2

这是我的第二篇文章,我希望我能掌握格式。如果我提供的信息太少或太多,请告诉我。

作为解决更复杂问题的垫脚石,我需要从不受报表切片器中选择的季度日期影响的表中计算第一个订单日期。

这是我的日历 DAX:

DateTable = ADDCOLUMNS(CALENDARAUTO(),
"MonthNo", MONTH([Date]),
"MonthName", FORMAT([Date],"MMMM"),
"Quarter", QUARTER([Date]),
"Year", YEAR([Date]),
"Day", DAY([Date]),
"WeekdayNum", WEEKDAY([Date]),
"WeekdayName",FORMAT([Date],"DDDD"),
"YearMonth", FORMAT([Date], "YYYY-MM"),
"YearQuarter", FORMAT([Date], "YYYY-Q"))

Screenshot of the data model

到目前为止,我已经尝试了一些变化。目前,我已经尝试过这段代码:

FirstOrderDate = CALCULATE(MIN('invoices_2019-2022'[Date Initiated]), 
ALL(DateTable[Date]))

只要我没有在切片机中选择任何四分之一,就可以正常工作。

Screenshot of result WITHOUT selected YearQuarter

但是,一旦我在切片器中选择 YearQuarter,结果就会发生变化:

Screenshot of result with selected YearQuarter

因此,代码不再返回实际的第一个订单日期,仅返回切片器上下文中的第一个订单日期。尽管有 ALL 功能。

接下来,我尝试了这个:

FirstOrderDate = CALCULATE(MIN('invoices_2019-2022'[Date Initiated]), 
REMOVEFILTERS(DateTable[Date]))

同样的结果。

我已经用谷歌搜索这个东西了,还尝试了 MINX 的变体,以及其他一些东西。

我真的不知道为什么会这样以及如何让它发挥作用。

请帮忙。

谢谢。

powerbi dax
2个回答
1
投票

您需要对整个表格或相关列执行

ALL
REMOVEFILTERS

所以尝试一下:

ALL(DateTable)
// or
REMOVEFITLERS(DateTable)

0
投票

是否可以删除 REMOVEFILTERS,然后再次使用 FILTER 作为延续?

© www.soinside.com 2019 - 2024. All rights reserved.