根据多个标准识别事件的首次发生

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
)

它没有经过测试,但应该可以。

如果有帮助请告诉我。