如何在不支持数组参数的函数(如INDEX)中使用ARRAYFORMULA?
解决INDEX等函数数组参数不返回多结果的问题
像INDEX、GCD、AND这类函数的部分参数属于标量参数,即使传入数组并包裹ARRAYFORMULA,函数也只会处理数组的第一个元素,无法返回完整数组结果。针对你提到的取第1、5行Value值的需求,可通过以下几种方式解决:
使用MAP函数迭代处理数组参数
MAP会遍历传入的行号数组,对每个元素单独调用INDEX,从而返回多个结果:=MAP({1;5}, LAMBDA(row_num, INDEX(A2:B16, row_num, 2)))改用原生支持数组的函数(如XLOOKUP)
如果你的需求是根据Key列的数值匹配取值,XLOOKUP原生支持数组作为查找参数,写法更简洁:=XLOOKUP({1;5}, A2:A16, B2:B16)旧版兼容写法(无需LAMBDA函数)
若无法使用MAP这类LAMBDA系列函数,可通过拆分数组元素分别调用INDEX,再用数组形式组合结果:={INDEX(A2:B16,1,2); INDEX(A2:B16,5,2)}
内容的提问来源于stack exchange,提问作者TheMaster
相关产品推荐
相关产品推荐

