根据多个标准识别事件的首次发生
Identify first occurence of event based on multiple criterias
我在 PowerPivot 中有一个数据集,需要找到一种方法来仅标记第一次出现的客户子事件
上下文:每个事件(COLUMN A)可以有 X 个子事件(COLUMN B),
我已经有一个根据多个标准(D 列)识别客户事件的标志...我需要的是一种方法来标记 仅在每个客户子事件中第一次出现 事件,我添加了一个 fake COLUMN E 来说明标记应该如何工作。
更新
其他情况 - 有重复的客户 sub_events 但只需要标记第一个 sub_event... 应该如下所示:
使用以下表达式在您的模型中创建计算列:
=
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
)
它没有经过测试,但应该可以。
如果有帮助请告诉我。
我在 PowerPivot 中有一个数据集,需要找到一种方法来仅标记第一次出现的客户子事件
上下文:每个事件(COLUMN A)可以有 X 个子事件(COLUMN B), 我已经有一个根据多个标准(D 列)识别客户事件的标志...我需要的是一种方法来标记 仅在每个客户子事件中第一次出现 事件,我添加了一个 fake COLUMN E 来说明标记应该如何工作。
更新 其他情况 - 有重复的客户 sub_events 但只需要标记第一个 sub_event... 应该如下所示:
使用以下表达式在您的模型中创建计算列:
=
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
)
它没有经过测试,但应该可以。
如果有帮助请告诉我。