首页 文章

具有条件逻辑的DAX时间智能

提问于
浏览
1

我有一个“销售”表,其中包含团队ID,付款类型和日期(请参阅下面的示例):

enter image description here

我想写一个DAX公式,它将“查找”上个月“每月”团队的销售额和“季度”团队的3个月前销售额 . 查询还需要按团队ID进行过滤,因此先前的销售属于同一团队 .

以下是所需输出的示例(销售变化):

enter image description here

PriorMonthSales =CALCULATE(
SUM(Table[Sales]),
FILTER(
   Table[TeamID]&&
   Table[Date] - 1
 )

PriorQuarterSales =CALCULATE(
SUM(Table[Sales]),
FILTER(
   Table[TeamID]&&
   Table[Date] - 3
 )

PriorSales = IF(Table[PaymentType] = "Monthly",PriorMonthSales,   PriorQuarterSales)

这些公式显然不会产生预期的结果,但我在这里分享它们以显示我解决这个问题的方法 . 也许,这里知识渊博的人可以帮助正确的语法和逻辑 .

谢谢!

1 回答

  • 0

    要计算上个月/季度的总和,您可以添加计算列 . 但是,您需要将月份列更改为日期 . jan 16 => 1/1/2016

    式:

    =
    IF (
        myTable[paymenttype] = "monthly",
        CALCULATE (
            SUM ( myTable[sales] ),
            FILTER (
                myTable,
                myTable[TeamID] = EARLIER ( myTable[TeamID] )
                    && DATEADD ( myTable[date], 1, MONTH ) = EARLIER ( myTable[date] )
                    && myTable[paymenttype] = EARLIER ( myTable[paymenttype] )
            )
        ),
        CALCULATE (
            SUM ( myTable[sales] ),
            FILTER (
                myTable,
                myTable[TeamID] = EARLIER ( myTable[TeamID] )
                    && DATEADD ( myTable[date], 3, MONTH ) = EARLIER ( myTable[date] )
                    && myTable[paymenttype] = EARLIER ( myTable[paymenttype] )
            )
        )
    )
    

相关问题