如何基于搜索填充列:提取年龄超30的姓名至另一工作表列?
提取年龄超过30岁的姓名的函数方案
适用于Excel 365/2021及以上版本(支持动态数组)
直接用FILTER函数就能一步实现,假设姓名数据在Sheet1的A列,年龄在B列,在目标工作表的任意空白单元格(比如A1)输入:
=FILTER(Sheet1!A:A, Sheet1!B:B>30, "无符合条件人员")
- 第一个参数
Sheet1!A:A指定要提取的姓名列 - 第二个参数
Sheet1!B:B>30是筛选条件:年龄大于30 - 第三个参数是无符合条件人员时显示的提示文本,可按需修改
输入后会自动溢出所有符合条件的姓名,无需手动下拉填充。
适用于旧版Excel(无动态数组支持)
用INDEX+SMALL+IF的数组公式组合实现,在目标工作表的A2单元格输入:
=INDEX(Sheet1!A:A, SMALL(IF(Sheet1!B:B>30, ROW(Sheet1!B:B)), ROW(A1)))
输入完成后必须按Ctrl+Shift+Enter触发数组计算,然后下拉填充单元格,直到出现#NUM!就说明已提取完所有符合条件的姓名。
补充提示
- 建议把整列引用(比如
Sheet1!A:A)改成实际数据范围(比如Sheet1!A2:A100),减少计算量,避免空白行干扰 - 如果原数据表头在第一行,记得从第二行开始引用数据,不要包含表头行
内容的提问来源于stack exchange,提问作者fraggley
相关产品推荐
相关产品推荐

