在Excel 2016中通过框架编号与高程范围查找PROFILE值
Excel 2016 多条件匹配查找PROFILE值
针对你需要在Sheet2中结合FRAME No.匹配+高程范围(EL.1≤指定高程≤EL.2)筛选,从Sheet1提取PROFILE的需求,以下是几种可用的Lookup类函数实现方案:
方案1:INDEX + MATCH 数组公式
这是多条件匹配的经典方案,精准定位符合双条件的记录。假设Sheet2中C2为要返回PROFILE的单元格,A2对应FRAME No.,B2对应指定高程,输入公式:
=INDEX(Sheet1!$D$2:$D$9,MATCH(1,(Sheet1!$A$2:$A$9=Sheet2!A2)*(Sheet1!$B$2:$B$9<=Sheet2!B2)*(Sheet1!$C$2:$C$9>=Sheet2!B2),0))
- 输入完成后需按
Ctrl+Shift+Enter触发数组计算(Excel 2016不支持动态数组,必须手动触发) - 公式逻辑:三个条件相乘生成布尔数组,匹配项会返回1,MATCH找到第一个1的位置,INDEX提取对应PROFILE值
方案2:LOOKUP 函数直接实现
无需数组快捷键,利用LOOKUP的特性自动匹配符合条件的记录:
=LOOKUP(1,0/((Sheet1!$A$2:$A$9=Sheet2!A2)*(Sheet1!$B$2:$B$9<=Sheet2!B2)*(Sheet1!$C$2:$C$9>=Sheet2!B2)),Sheet1!$D$2:$D$9)
- 公式逻辑:用0除以条件数组,符合条件的结果为0,不符合的返回错误值;LOOKUP会忽略错误值,找到最后一个0对应的PROFILE(你的数据中每个FRAME No.的高程范围无重叠,因此结果唯一)
验证示例
以Sheet2第一条记录为例:FRAME No.=32,高程=3675,公式会匹配Sheet1中FRAME No.=32且3300≤3675≤5600的行,返回400x200x10x14,与预期结果一致。
内容的提问来源于stack exchange,提问作者Aleksandr Malikov
相关产品推荐
相关产品推荐

