Google Sheets中VLOOKUP与数组公式适配多列匹配问题求助
Google Sheets 批量填充数组公式修正方案
原拖拽公式的核心逻辑可简化——OR(VLOOKUP(...)="-", VLOOKUP(...)<>"-") 是恒成立的冗余条件,可直接移除;而数组公式失效的关键原因是**AND()/OR()函数在ArrayFormula()中无法返回逐行的数组结果**,需用*(逻辑与)、+(逻辑或)替代,同时新增空行过滤规则避免无效计算。
C列(匹配Base参数)
在C1单元格输入以下数组公式:
=ArrayFormula(IF(A2:A="", "", IF( (VLOOKUP(A2:A, $G$1:$I$11, 2, FALSE)="Base") + ((VLOOKUP(A2:A, $G$1:$I$11, 2, FALSE)<>"Base")*(VLOOKUP(A2:A, $G$1:$I$11, 3, FALSE)="Base")), B2:B, "" )))
D列(匹配Acid参数)
在D1单元格输入以下数组公式:
=ArrayFormula(IF(A2:A="", "", IF( (VLOOKUP(A2:A, $G$1:$I$11, 2, FALSE)="Acid") + ((VLOOKUP(A2:A, $G$1:$I$11, 2, FALSE)<>"Acid")*(VLOOKUP(A2:A, $G$1:$I$11, 3, FALSE)="Acid")), B2:B, "" )))
E列(匹配H2O2参数)
在E1单元格输入以下数组公式:
=ArrayFormula(IF(A2:A="", "", IF( (VLOOKUP(A2:A, $G$1:$I$11, 2, FALSE)="H2O2") + ((VLOOKUP(A2:A, $G$1:$I$11, 2, FALSE)<>"H2O2")*(VLOOKUP(A2:A, $G$1:$I$11, 3, FALSE)="H2O2")), B2:B, "" )))
公式说明
IF(A2:A="", "", ...):过滤A列空行,避免空单元格返回错误值+替代OR、*替代AND:确保在数组环境下逐行判断条件- 移除冗余的恒成立
OR条件,提升公式运行效率
内容的提问来源于stack exchange,提问作者Akhmad Fahrudhin
相关产品推荐
相关产品推荐

