如何使用FILTER函数获取字段中符合0.5岁条件值的单元格地址
解决方法
首先明确FILTER函数默认返回匹配单元格的数值内容而非引用/地址,这是你无法将其输出用到其他公式的核心原因,可根据你的Excel版本选择对应方案:
适用Excel 365/2021及以上版本
方案1:直接返回可被其他公式识别的引用数组
如果后续公式需要调用匹配单元格的实际值/属性,不需要文本格式的地址,直接用以下公式即可,输出的数组可直接嵌套进SUM、COUNT、VLOOKUP等其他公式:
=FILTER(目标信息列, 年龄列=0.5)
示例(假设年龄存放在B2:B200,要提取的儿童信息存放在A列):=FILTER(A2:A200,B2:B200=0.5)
方案2:返回文本格式的单元格地址
如果需要明确获取单元格的行号列号文本地址,用BYROW+LAMBDA遍历FILTER筛选出的行号生成地址:
=BYROW(FILTER(ROW(目标信息列),年龄列=0.5),LAMBDA(行号,ADDRESS(行号,COLUMN(目标信息列))))
示例:=BYROW(FILTER(ROW(A2:A200),B2:B200=0.5),LAMBDA(r,ADDRESS(r,1)))
适用Excel 2019及更早版本
旧版本不支持动态数组和LAMBDA函数,用INDEX+SMALL+IF组合公式,首个单元格输入后按Ctrl+Shift+Enter启用数组计算,向下拖拽填充即可依次获取所有匹配项的地址:
=IFERROR(ADDRESS(SMALL(IF(年龄列=0.5,ROW(目标信息列),99999),ROW(A1)),COLUMN(目标信息列)),"")
示例:=IFERROR(ADDRESS(SMALL(IF(B$2:B$200=0.5,ROW(A$2:A$200),99999),ROW(A1)),1),"")
参考示例

内容的提问来源于stack exchange,提问作者Maagalam HARSHA VARDHAN
相关产品推荐
相关产品推荐

