首页 > 解决方案 > 查找不同 ID 的重叠日期

问题描述

我编写了以下 excel 代码来输出真或假,具体取决于个人 ID 号是否存在重叠日期。请帮我把它翻译成 Power BI 中新列的代码?

=SUMPRODUCT(($C4<=$D$2:$D$4392)*($D4>=$C$2:$C$4392)*($B4=$B$2:$B$4392))>1

B 列是 ID,C 列是开始日期,D 列是结束日期——另见示例

我的逻辑如下。

公式中有三个数组:

它们被相乘成一个数组,以找出所有布尔语句为真的实例数。SUMPRODUCT 将该数组的值相加,如果大于一,则表示重叠。

标签: excelpowerbidax

解决方案


这个计算列应该适合你。

Overlap? =
VAR StartDate = 'Table'[Start]
VAR EndDate = 'Table'[End]
RETURN
    CALCULATE (
        COUNTROWS ( 'Table' ),
        ALLEXCEPT ( 'Table', 'Table'[ID] ), 
        'Table'[Start] <= EndDate,
        'Table'[End] >= StartDate 
    ) > 1

ALLEXCEPT 函数会将表过滤到与当前行具有相同 ID 的行(它实际上删除了除 [ID] 列上的过滤器之外的所有过滤器)。

CALCULATE 函数计算过滤表的行数,其中 [Start] <= 比变量 EndDate 为当前行的 End 值,[End] >= 比变量 StartDate 为开始值当前行。对于当前行总是如此,但如果结果大于 1,则存在重叠。

在此处输入图像描述


推荐阅读