如何用公式提取表格中首列值等于指定参考值的行至新表格
纯公式实现:提取源表首列匹配指定值的行到新表
本次示例匹配目标为第一列值等于13:00:00的所有行,根据使用的Excel版本选择对应公式即可,无需编写VBA脚本。
365/2021及以上版本(支持动态数组功能)
直接在新表的首个空白单元格(比如A1)输入下方公式,按回车后会自动溢出填充所有匹配行的全部列内容,不需要手动拖动填充:
=FILTER(源表!$A:$Z,源表!$A:$A=TIME(13,0,0),"无匹配数据")
- 参数调整说明:
源表!$A:$Z替换成源表的实际数据覆盖范围即可,不建议选全表避免计算卡顿- 匹配规则可灵活修改:如果参考值存在固定单元格(比如新表的
$F$1单元格),直接把TIME(13,0,0)换成对应单元格引用即可;如果源表首列的时间是文本格式而非Excel内置时间格式,把匹配值改成"13:00:00" - 公式最后一个参数是无匹配结果时的返回提示,可按需修改
2019及更早版本(无动态数组支持)
用INDEX+SMALL+IF组合数组公式实现,操作步骤:
- 在新表A1单元格输入下方公式
- 按下
Ctrl+Shift+Enter三键确认数组公式输入(不能直接按回车) - 先向右拖动填充到和源表列数一致,再选中填充好的首行向下拖动,直到单元格全部返回空白即为所有匹配结果提取完成
=IFERROR(INDEX(源表!A:A,SMALL(IF(源表!$A:$A=TIME(13,0,0),ROW(源表!$A:$A),9^9),ROW(A1))),"")
- 注意事项:
- 向右拖动填充时,
INDEX(源表!A:A里的列号要对应调整为B、C……等对应列,其余参数不要改动 - 匹配值的调整规则和上述365版本一致,文本格式时间就换文本对比,单元格存参考值就换单元格引用,引用的匹配值单元格记得加
$锁死行列避免拖动时偏移
- 向右拖动填充时,
内容的提问来源于stack exchange,提问作者Firas Hafiz
相关产品推荐
相关产品推荐

