Power BI:使用操作ID(事件顺序)和客户ID查找最后选择的值

时间:2019-01-28 21:52:03

标签: powerbi dax

我目前正在尝试计算一种结帐过程中最后选择的金额。这需要通过客户ID进行标识。可以使用操作ID(索引事件顺序,但不能由客户重置)来标识最后选择的金额。

三列分别是操作ID,选择的金额和客户ID(请参见下面的图片URL)。

编辑1/29/19::除非客户ID缺少“已确认”,否则输出还应排除$ 0作为输出选项。最终目的是获得“所需输出”的总和。

示例数据

 Action ID     Amount Chosen     Customer ID    Desired Output
 1             $10               1              
 2             $15               1              $0
 3             $20               2              
 4             $25               2              $25
 5             $0                2              
 6             Confirmed         2              

2 个答案:

答案 0 :(得分:1)

我会结合使用LOOKUPVALUE和MAXX函数,例如

js

LOOKUPVALUE将从单行中提取值。 MAXX正在为每个客户ID查找最高的操作ID。

答案 1 :(得分:0)

我已经调整了Mike Honey的答案以解决新要求。我认为这项工作有效-仅进行了轻度审查。

Last Amount Chosen = 
VALUE(
    LOOKUPVALUE (
        TestData[AmountChosen],
        TestData[ActionID], MAXX (
            KEEPFILTERS ( VALUES ( 'TestData'[CustomerId] ) )
            , CALCULATE ( MAX ( 'TestData'[ActionID] )
                , FILTER(TestData, TestData[AmountChosen] <> "Confirmed")
                , FILTER(TestData, TestData[AmountChosen] <> "0") 
            )
        )
    )
) *  MAXX(TestData,if(TestData[AmountChosen] = "Confirmed",1,0))

这基本上是相同的工作,只是带有一些额外的过滤器,以使特殊情况(“ Confirmed”和“ 0”)脱离结果。然后,我们检查“已确认”状态并获得0或1的标志值。将该标志与查找返回的内容相乘会在结果未确定的情况下将其归零,或者在结果不变的情况下将其传递通过。

应该注意的是,仅当该信息在customerID级别上专门分组时,此度量才提供有意义的信息。

enter image description here