如何结合VLOOKUP()+QUERY()+IMPORTRANGE()实现多条件查询?
双条件VLOOKUP改造方案
高效版公式(用QUERY整合数据源)
=ARRAYFORMULA(IF(A3:A="","",IFNA(VLOOKUP(A3:A&E3:E,QUERY(IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Arrayformula VLOOKUP multiple columns!A1:C"),"select Col1&Col2, Col3 label Col1&Col2 'Key', Col3 'Qtd'",0),2,0))))
核心改动说明
- 条件拼接:把VLOOKUP的匹配值从单列
E3:E改为A3:A&E3:E,将两个条件合并成唯一匹配键 - QUERY数据处理:在QUERY语句中,把源表的
Col1(对应A列条件)和Col2(对应E列条件)拼接成新的匹配键列,同时只保留该键列与需要返回的Col3(Qtd值) - 返回列调整:由于QUERY返回的是「拼接键+Qtd」两列,因此VLOOKUP的返回列序号从3改为2
简化版公式(逻辑直观,无需QUERY)
如果觉得QUERY语法复杂,可直接构造匹配数组:
=ARRAYFORMULA(IF(A3:A="","",IFNA(VLOOKUP(A3:A&E3:E,{IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Arrayformula VLOOKUP multiple columns!A1:A")&IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Arrayformula VLOOKUP multiple columns!B1:B"),IMPORTRANGE("1gh5w0czg2JuoA3i5wPu8_eOpC4Q4TXIRhmUrg53nKMU","Arrayformula VLOOKUP multiple columns!C1:C")},2,0))))
该公式直接将源表两条件列拼接后与值列组成数组,逻辑更易懂,但多次调用IMPORTRANGE的效率略低于QUERY版。
内容的提问来源于stack exchange,提问作者onit
相关产品推荐
相关产品推荐

