如何查询同一ID下Table A国际到达日期晚于Table B国内到达日期的记录
跨表匹配ID并校验日期条件的解决方案
核心需求回顾
需从两个含重复ID的表中筛选出所有符合条件的ID:该ID在Table B中存在任意一条arrival date_International记录,晚于其在Table A中的任意一条arrival date_Domestic记录(注:原描述可能存在表与字段的对应笔误,此处按合理逻辑修正)。
解决方案
1. 为每个ID标记是否符合条件
在Table A的空白列(如C列,对应A列为ID、B列为arrival date_Domestic)输入以下公式,回车后下拉填充:
=IF(MAX(IF(TableB[ID]=A3,TableB[arrival date_International],""))>MIN(IF(TableA[ID]=A3,TableA[arrival date_Domestic],"")),"Y","N")
- 逻辑说明:提取当前ID在Table B中的最大国际到达日期,以及在Table A中的最小国内到达日期。若最大国际日期晚于最小国内日期,说明该ID存在至少一对符合条件的日期记录,标记为
Y,否则为N。 - 注意:旧版Excel需按
Ctrl+Shift+Enter触发数组计算,新版Excel直接回车即可。
2. 提取所有符合条件的唯一ID
若需直接生成符合条件的ID列表,使用以下公式(适用于Excel 365/2021及以上版本):
=UNIQUE(FILTER(TableA[ID], BYROW(TableA[ID], LAMBDA(x, MAX(IF(TableB[ID]=x,TableB[arrival date_International],""))>MIN(IF(TableA[ID]=x,TableA[arrival date_Domestic],""))))))
- 逻辑说明:通过
BYROW遍历每个ID,判断其是否满足日期条件,再用FILTER筛选出符合条件的ID,最后用UNIQUE去重得到唯一ID列表。
3. 兼容旧版Excel的替代方案
若使用旧版Excel,可改用SUMPRODUCT实现标记:
=IF(SUMPRODUCT(--(TableB[ID]=A3),--(TableB[arrival date_International]>TableA[arrival date_Domestic]))>0,"Y","N")
- 逻辑说明:统计当前ID在Table B中,国际到达日期晚于Table A中任意国内到达日期的记录数,若计数大于0则标记为
Y。
内容的提问来源于stack exchange,提问作者victor
相关产品推荐
相关产品推荐

