如何根据一个列值和其他列的特定日期在DAX中创建计算列?

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

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

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

我尝试过不同的方式,但不能成功。

这就是我尝试过的方式。

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)))))
powerbi dax
1个回答
0
投票

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

Output = SWITCH([Shop];“ADD_TO_CART”; Table1 [Number];“PRODUCT_VIEW”; CALCULATE(CALCULATE(SUM(Table1 [Number]); FILTER(Table1; Table1 [Shop] =“ADD_TO_CART”)); ALLEXCEPT(表1;表1 [日期])) - CALCULATE(CALCULATE(SUM(表1 [号码]); FILTER(表1;表1 [网店] = “PRODUCT_VIEW”)); ALLEXCEPT(表1;表1 [日期])); “CHECKOUT” ; CALCULATE(CALCULATE(SUM(表1 [号码]); FILTER(表1;表1 [网店] = “PRODUCT_VIEW”)); ALLEXCEPT(表1;表1 [日期])) - CALCULATE(CALCULATE(SUM(表1 [号码]) ; FILTER(表1;表1 [网店] = “CHECKOUT”)); ALLEXCEPT(表1;表1 [日期])))

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