我目前正在尝试计算一种结帐过程中最后选择的金额。这需要通过客户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
答案 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级别上专门分组时,此度量才提供有意义的信息。