如何使用 DAX 查找从昨天开始的销售的最后日期

How to find last date with sales starting from yesterday with DAX

我有一个计算列“LastSaleDate”,它使用以下 dax 表达式查找销售额的最后日期: LastSaleDate=LASTDATE(filter(ALL(Dim_Time[Date]),[销售额] >0))

接下来我要实现的是创建另一个计算列“LastSaleDateStartingFromYesterday”。因此,例如,如果当前日期是星期一,并且星期日或星期六没有销售,则应将 return 星期五作为最后一个销售日期(参见下面的示例)。周六和周日可能有促销活动,所以我不能 exlude/filter 出去。

如何写出这样的dax表达式?

非常感谢所有提示、解决方案和帮助

此致,Rubrix

您可以添加计算列:

PreviousSalesDate = 
var sDate = Sales[Date]
var lDate = CALCULATE(max(Sales[Date]), FILTER(Sales, sDate > Sales[Date] && Sales[Sales Amount] > 0))
return lDate

我们在代码中使用变量。 sDate 是该行的当前日期。接下来我们获取日期小于 sDate(之前的所有行)且销售额大于零的所有行的最大值。

根据您提供的数据,我们只能得到 5 月 13 日。

我发现您对上次销售日期的计算没有正确应用 [销售额] > 0 的过滤器。如果您为 2022-05-17 添加一个额外的行,您可以看到这一点,其中 [销售额] = 0.

以下是对我有用的 DAX 公式:

LastSaleDate2 = CALCULATE(
MAX('Table'[Date]),
FILTER('Table','Table'[Sales Amount]>0)
)

LastSaleDateStartingFromYesterday2 = CALCULATE(
MAX('Table'[Date]),
FILTER('Table','Table'[Sales Amount]>0 && VALUE('Table'[Date]) < VALUE(TODAY()-1))
)

可以通过在公式末尾添加“='Table'[日期]”将这些转换为True/False。