Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 查找不同ID的重叠日期_Excel_Powerbi_Dax - Fatal编程技术网

Excel 查找不同ID的重叠日期

Excel 查找不同ID的重叠日期,excel,powerbi,dax,Excel,Powerbi,Dax,我编写了下面的excel代码来输出true或false,具体取决于个人ID号的日期是否重叠。请帮我把它翻译成Power BI新专栏的代码 =SUMPRODUCT(($C4<=$D$2:$D$4392)*($D4>=$C$2:$C$4392)*($B4=$B$2:$B$4392))>1 =SUMPRODUCT($C4=$C$2:$C$4392)*($B4=$B$2:$B$4392))>1 B列是ID,C列是开始日期,D列是结束日期——另请参见 我的逻辑如下 公式中有三个数组:

我编写了下面的excel代码来输出true或false,具体取决于个人ID号的日期是否重叠。请帮我把它翻译成Power BI新专栏的代码

=SUMPRODUCT(($C4<=$D$2:$D$4392)*($D4>=$C$2:$C$4392)*($B4=$B$2:$B$4392))>1
=SUMPRODUCT($C4=$C$2:$C$4392)*($B4=$B$2:$B$4392))>1
B列是ID,C列是开始日期,D列是结束日期——另请参见

我的逻辑如下

公式中有三个数组:

  • 第一个是布尔值,以查看开始日期是否早于其他结束日期
  • 第二个是布尔值,以查看结束日期是否早于其他开始日期,以及
  • 第三是要确保它是相同的身份证号码

将它们相乘到一个数组中,以确定所有布尔语句的实例数。SUMPRODUCT将该数组的值相加,如果大于1,则表示重叠。

此计算列适用于您

Overlap? =
VAR StartDate = 'Table'[Start]
VAR EndDate = 'Table'[End]
RETURN
    CALCULATE (
        COUNTROWS ( 'Table' ),
        ALLEXCEPT ( 'Table', 'Table'[ID] ), 
        'Table'[Start] <= EndDate,
        'Table'[End] >= StartDate 
    ) > 1
重叠=
VAR StartDate='表'[Start]
VAR EndDate='表'[End]
返回
算计(
COUNTROWS('表'),
ALLEXCEPT('Table','Table'[ID]),
'表'[Start]=开始日期
) > 1
ALLEXCEPT函数将筛选表中与当前行ID相同的行(它实际上会删除除[ID]列上的筛选器之外的所有筛选器)

CALCULATE函数对过滤表中的行进行计数,其中[Start]大于变量StartDate,StartDate是当前行的起始值。对于当前行,这始终是正确的,但如果结果大于1,则存在重叠


您能提供一些示例数据和预期结果吗?在原始问题中添加了示例我的数据集太大,出现了一个错误“没有足够的内存来完成此操作。请稍后在有更多可用内存时重试”。有什么办法解决此问题吗?数据集为130k+行