有没有另一种方法可以基于Stores执行Like-for-like DAX函数?

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

基本上,我正在尝试根据商店表现的周数进行同类比较。因此,从本质上讲,DAX 指数应该查找 2024 年和 2023 年周数据,并搜索每周是否有任何销售发生。如果任一年份该周的销售额为 0,则将商店标记为“关闭”,否则标记为“营业”。

如有任何帮助,我们将不胜感激!

Sales Status = 
 VAR CurrentWeek = MAX(Overall[Week])
 VAR CurrentYear = YEAR(CurrentWeek)
 VAR LastYear = CurrentYear - 1

VAR SalesThisYear = 
CALCULATE(
    SUM(Overall[QTY]),
    FILTER(
        Overall,
        Overall[Store Name New] = EARLIER(Overall[Store Name New]) &&
        YEAR(Overall[Week]) = CurrentYear
    )
)

VAR SalesLastYear = 
CALCULATE(
    SUM(Overall[QTY]),
    FILTER(
        Overall,
        Overall[Store Name New] = EARLIER(Overall[Store Name New]) &&
        YEAR(Overall[Week]) = LastYear
    )
)

RETURN
IF(
    (SalesLastYear > 0 && SalesThisYear = 0) || (SalesThisYear > 0 && SalesLastYear = 0),
    "Close",
    "Open"
)
powerbi dax
1个回答
0
投票

您需要在计算列中添加某种周比较。一种方法是使用

WEEKNUM
。请参阅以下示例:

Sales Status = 
 var thisStore = [Store Name New]
 var thisWeek =  [Week]
 var wkNum =  WEEKNUM(thisWeek)
 var thisYear = YEAR(thisWeek)
 var prevYear = thisYear - 1

 var salesThisYear = 
   CALCULATE(
    SUM(Overall[QTY]),
    FILTER(
      Overall,
      Overall[Store Name New] = thisStore &&
      YEAR(Overall[Week]) = thisYear &&
      WEEKNUM(Overall[Week]) = wkNum 
    )
  )

 var salesPrevYear = 
   CALCULATE(
    SUM(Overall[QTY]),
    FILTER(
      Overall,
      Overall[Store Name New] = thisStore &&
      YEAR(Overall[Week]) = prevYear &&
      WEEKNUM(Overall[Week]) = wkNum 
    )
  )

 RETURN
   IF (salesThisYear = 0 || salesPrevYear = 0, "Close", "Open")
© www.soinside.com 2019 - 2024. All rights reserved.