excel - 查找不同 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 列是结束日期——另见示例
我的逻辑如下。
公式中有三个数组:
- first 是布尔值,查看开始日期是否早于其他结束日期,
- second 是布尔值,用于查看结束日期是否早于其他开始日期,并且
- 第三是确保它是相同的身份证号码。
它们被相乘成一个数组,以找出所有布尔语句为真的实例数。SUMPRODUCT 将该数组的值相加,如果大于一,则表示重叠。
解决方案
这个计算列应该适合你。
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,则存在重叠。
推荐阅读
- ios - 如何强制我的应用程序对我的自动布局约束使用反向文本方向?
- java - 无法在 Hadoop jar 上加载 application.properties (NullPointerException)
- python - venv 似乎没有被 Python 使用
- python-3.x - Matplotlib 修复 y 轴
- java - 尝试在 Java 中实现 HTML 文件比较,但在 saxon 开始元素中出现 NULL 指针异常
- javascript - 如何在电子 + 反应环境中使用使用对话框?
- amazon-web-services - AWS CLI:描述没有“p-”前缀的策略
- javascript - 如何从 i18next 中获取更多调试信息?
- python - AttributeError:模块'cv2.cv2'在OpenCV中没有属性'faces'
- python - 如何用 Python AST 中的值替换变量名?