如何基于一个列值和另一列的特定日期在DAX中创建计算列?

时间:2018-09-02 18:04:15

标签: powerbi dax

我的桌子上只有几列。考虑到每个不同的日期,我想根据以下规则创建一个计算列:

  • 如果[Shop]是“ ADD_TO_CART”,则[Number]
  • 如果[Shop]为“ PRODUCT_VIEW”,则“ ADD_TO_CART”的[Number]减去“ PRODUCT_VIEW”的[Number]
  • 如果[Shop]为“ CHECKOUT”,则“ PRODUCT_VIEW”的[Number]减去“ CHECKOUT”的[Number]。

我尝试了不同的方法,但未能成功。

table with data

这就是我尝试过的方式。

IF([Shop]="ALL_VISITS",0,
       IF([Shop]="PRODUCT_VIEW",
           CALCULATE(SUM(Number),FILTER(TableName,
           [Shop]="ALL_VISITS"))-Number,
       IF([Shop]="ADD_TO_CART",
            CALCULATE(SUM(Number),
            FILTER(TableName,[Shop]="PRODUCT_VIEW"))-Number,
       IF([Shop]="CHECKOUT",
            CALCULATE(SUM(Number),
            FILTER(TableName,[Shop]="ADD_TO_CART"))-Number,
       IF([Shop]="TRANSACTION",
            CALCULATE(SUM(Number),
            FILTER(TableName,[Shop]="CHECKOUT"))-Number,0)))))

1 个答案:

答案 0 :(得分:0)

对于您的预期输出,我在DAX中成功尝试了此SWITCH。考虑到Table1有您的列。

输出= SWITCH([Shop];“ ADD_TO_CART”; Table1 [Number];“ PRODUCT_VIEW”; CALCULATE(CALUMLATE(SUM(Table1 [Number]); FILTER(Table1; Table1 [Shop] =“ ADD_TO_CART”))) ; ALLEXCEPT(Table1; Table1 [Date]))-CALCULATE(SUM(Table1 [Number]); FILTER(Table1; Table1 [Shop] =“ PRODUCT_VIEW”)); ALLEXCEPT(Table1; Table1 [Date]))); “ CHECKOUT”; CALCULATE(CALCULATE(SUM(Table1 [Number]); FILTER(Table1; Table1 [Shop] =“ PRODUCT_VIEW”))); ALLEXCEPT(Table1; Table1 [Date]))-CALCULATE(CALCULATE(SUM(Table1 [ Number]); FILTER(Table1; Table1 [Shop] =“ CHECKOUT”)); ALLEXCEPT(Table1; Table1 [Date])))