You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel求助:如何将原表中司机为NS的行提取至新工作表?

嗨,我来帮你解决这个Excel数据提取的问题!根据你描述的场景——从原表(表头在A4:M4,超1000行数据)里提取司机姓名为NS或新工作表A1单元格内容的行,下面给你两种实用方案,适配不同版本的Excel:

提取指定司机的行数据

先明确你的数据结构:原表表头在第4行,Driver列对应C列(对应你给出的数据示例)。

方案1:用FILTER函数(Excel 365/2021及以后版本)

这是最简洁的方案,专门为筛选数据设计,比INDEX/MATCH组合好用得多。

假设你要在新工作表的A2单元格开始输出结果,直接输入以下公式:

=FILTER(原表!A4:M1004, (原表!C4:C1004=A1)+(原表!C4:C1004="NS"), "无匹配数据")

公式说明:

  • 原表!A4:M1004:替换成你原表实际的完整数据区域(这里按1000行数据估算,你可以根据实际行数调整)
  • (原表!C4:C1004=A1)+(原表!C4:C1004="NS"):+代表逻辑「或」,只要Driver列等于新表A1的内容,或者等于NS,就会被筛选出来
  • "无匹配数据":可选参数,当没有符合条件的行时显示提示文本,你可以按需修改或删除

输入公式后,Excel会自动溢出显示所有符合条件的行(连表头都会带上)。如果不需要表头,把原表数据区域改成原表!A5:M1004即可,表头可以手动复制原表A4:M4到新表A1:M1。

方案2:用INDEX+SMALL+IF数组公式(旧版Excel,无FILTER函数)

如果你用的是旧版Excel(比如2019及更早版本),可以用这个数组公式,输入后需要按Ctrl+Shift+Enter确认(注意:新版Excel自动支持数组,不用按组合键,但旧版必须按)。

在新工作表的A2单元格输入以下公式:

=IFERROR(INDEX(原表!A$4:M$1004, SMALL(IF((原表!C$4:C$1004=A$1)+(原表!C$4:C$1004="NS"), ROW(原表!A$4:A$1004)-ROW(原表!A$4)+1), ROW(A1)), COLUMN(A1)), "")

然后横向拖动填充到M列,再纵向拖动填充直到出现空白单元格即可。

公式说明:

  • IF((原表!C$4:C$1004=A$1)+(原表!C$4:C$1004="NS"), ROW(原表!A$4:A$1004)-ROW(原表!A$4)+1):找出所有符合条件的行在原数据区域内的相对行号
  • SMALL(..., ROW(A1)):依次提取第1、2、3...个符合条件的行号
  • INDEX(原表!A$4:M$1004, ..., COLUMN(A1)):根据行号和列号提取对应单元格的数据
  • IFERROR(..., ""):当没有更多符合条件的数据时显示空白,避免出现错误值

为什么你的INDEX/MATCH组合没成功?

INDEX/MATCH通常用来提取单个值,要提取整行所有数据的话,需要配合数组逻辑,而且处理「或」条件时比较繁琐——你需要用数组形式的MATCH来找到所有符合条件的行号,再结合SMALL函数逐个提取,不如上面两种方案直接高效。

内容的提问来源于stack exchange,提问作者andrewTPT

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 07:36:30