使用以下表达式在模型中创建计算列:
=
IF (
[Customer_Event] = 1
&& [Sub_Event]
= CALCULATE (
FIRSTNONBLANK ( 'Table'[Sub_Event], 0 ),
FILTER (
'Table',
'Table'[Event] = EARLIER ( 'Table'[Event] )
&& [Customer_Event] = 1
)
),
1,
0
)
如果Sub_Event 列是数字,则将FIRSTNONBLANK ( 'Table'[Sub_Event], 0 ) 替换为MIN('Table'[Sub_Event])
此外,如果您的机器区域设置使用;(分号)作为列表分隔符,请将我的表达式中的每个,(逗号)替换为分号以匹配您的设置。
更新:Sub_Event 列中的重复值。
我认为我们可以使用CaseRow# 列来获取Sub_Event 值的第一次出现:
=
IF (
[Customer_Event] = 1
&& [Sub_Event]
= CALCULATE (
FIRSTNONBLANK ( 'Table'[Sub_Event], 0 ),
FILTER (
'Table',
'Table'[Event] = EARLIER ( 'Table'[Event] )
&& [Customer_Event] = 1
)
)
&& [CaseRow#]
= CALCULATE (
MIN ( 'Table'[CaseRow#] ),
FILTER (
'Table',
'Table'[Event] = EARLIER ( 'Table'[Event] )
&& [Customer_Event] = 1
)
),
1,
0
)
它没有经过测试,但应该可以工作。
如果这有帮助,请告诉我。