You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

基于Site与Program双条件匹配Sheet2的Date Finished至Sheet1

解决Excel双条件匹配填充问题

我来帮你搞定这个双条件匹配的需求~先理清楚核心问题:你需要同时基于Site和Program两个字段,把Sheet2(也就是你文件里的Modification工作表)的Date Finished值匹配到Sheet1对应的行里,而你原来的公式只用到了Site单个条件,所以才会不符合预期。

核心需求回顾

  • Sheet1列:Site(A列)、Program(B列)、Date Finished(待填充)
  • Sheet2(Modification工作表)列:Site(D列)、Location、Date Released、Program(G列)、Date Finished(H列,可根据你的实际列位置调整)

解决方案:双条件匹配公式

我给你两种常用方案,适配不同版本的Excel:

方案1:用XLOOKUP(Excel 365/2021及以上版本推荐)

XLOOKUP支持直接写数组条件,语法更简洁:

=IFNA(XLOOKUP(1,([Capital Projects.xlsx]Modification!$D:$D=$A2)*([Capital Projects.xlsx]Modification!$G:$G=$B2),[Capital Projects.xlsx]Modification!$H:$H),"")
  • 逻辑说明:([Capital Projects.xlsx]Modification!$D:$D=$A2)*([Capital Projects.xlsx]Modification!$G:$G=$B2) 会生成一个数组,只有当Site和Program同时匹配的行才会返回1,其余为0
  • XLOOKUP找到第一个值为1的位置,返回对应的Date Finished值
  • IFNA用来处理没有匹配结果的情况,返回空字符串

方案2:用INDEX+MATCH(兼容所有Excel版本)

如果你的Excel版本不支持XLOOKUP,用经典的INDEX+MATCH组合也能实现:

=IFNA(INDEX([Capital Projects.xlsx]Modification!$H:$H,MATCH(1,([Capital Projects.xlsx]Modification!$D:$D=$A2)*([Capital Projects.xlsx]Modification!$G:$G=$B2),0)),"")
  • 注意事项:如果是Excel 2019及更早版本,输入完公式后需要按 Ctrl+Shift+Enter 作为数组公式确认(新版Excel自动支持数组,无需手动触发)
  • 逻辑和XLOOKUP一致:MATCH找到双条件都满足的行号,INDEX取出对应列的值

为什么你的原公式无法满足需求?

你原来的公式嵌套了两层VLOOKUP,但全程只用到了$A2290(Site)作为匹配条件,完全没结合Program字段。当同一个Site下有多个不同Program的记录时,VLOOKUP只会返回第一个匹配Site的结果,自然不符合你需要的双条件匹配逻辑。

内容的提问来源于stack exchange,提问作者sara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 10:14:08