【问题标题】:Identify first occurence of event based on multiple criterias根据多个标准识别事件的首次发生
【发布时间】:2016-10-11 21:48:41
【问题描述】:

我在 PowerPivot 中有一个数据集,需要找到一种方法来仅标记客户子事件的第一次发生

上下文:每个事件(COLUMN A)可以有X个子事件(COLUMN B), 我已经有一个标志,可以根据多个条件(D 列)识别客户事件...我需要的是一种在每个事件中标记仅第一次出现客户子事件的方法,我'已经添加了一个 fake COLUMN E 来说明标记应该如何工作。

更新 其他情况 - 有重复的客户 sub_events 但只需要标记第一个 sub_event... 应该如下所示:

【问题讨论】:

  • 只有客户事件会被标记,对吧?

标签: excel powerpivot flags dax find-occurrences


【解决方案1】:

使用以下表达式在模型中创建计算列:

=
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
)

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

如果这有帮助,请告诉我。

【讨论】:

  • 谢谢!这几乎适用于每个行项目,但是(总是有一个但是)......我没有提到 sub_event 可以有重复的事实,而第一个子事件的区别是 COLUMN C......我如何添加一个额外的标准,因此计算仅标记第一个 sub_event。
  • @MarceloAguilar,你的意思是你可以为一个事件重复 sub_event 吗?如果是这样,C 列会将两个 sub_events 都标记为客户端事件?
  • 是的...我更新了我的原始问题并添加了一张图片来说明我的观点。
  • @MarceloAguilar,我更新了我的答案,添加了一个新表达式,考虑到重复的 Sub_Events
  • 完美运行!谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-03
  • 1970-01-01
  • 2016-10-07
  • 1970-01-01
  • 2019-10-15
  • 2021-03-21
  • 1970-01-01
相关资源
最近更新 更多