如何在Google Sheets中用ARRAYFORMULA结合INDEX和FILTER实现数组公式?
多条件匹配提取日期的数组化解决方案
你的原公式无法自动数组化的核心问题是:公式中固定引用了C2和F2单个单元格,ARRAYFORMULA无法自动遍历整列的每一行进行对应匹配,以下是两种可行的数组化改造方案:
方案一:保留原逻辑的MAP迭代写法
适合需要严格遵循原公式“取第一个匹配结果”逻辑的场景,公式自动遍历C2:C和F2:F的每一行:
=MAP(C2:C, F2:F, LAMBDA(c, f, IF(OR(c="", f=""), "", INDEX(FILTER('STOCK OUT'!B:B, 'STOCK OUT'!C:C=c, 'STOCK OUT'!H:H=f), 1))))
方案二:简洁的XLOOKUP多条件匹配写法
利用条件拼接实现多键匹配,写法更简洁,同样返回第一个匹配的日期:
=XLOOKUP(C2:C&F2:F, 'STOCK OUT'!C:C&'STOCK OUT'!H:H, 'STOCK OUT'!B:B, "", 0)
说明
- 两个方案均无需手动下拉,输入一次即可自动填充整列结果
- 当C列或F列对应单元格为空时,方案一返回空值;方案二同样返回空值(公式中
""为无匹配时的返回值)
内容的提问来源于stack exchange,提问作者Point Click
相关产品推荐
相关产品推荐

