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

如何将Sheet1中的指定数据导入至Sheet2?

Sheet1数据示例

Sheet1指定数据提取至Sheet2的实现方案

一、公式法(适合简单提取规则)

1. 精确匹配提取

如果要按唯一标识(比如姓名、编号)提取对应数据,用VLOOKUP或INDEX+MATCH更灵活:

  • 比如Sheet1的A列是姓名,B列是目标数据,在Sheet2的A1输入要查询的姓名,B1输入:
    =VLOOKUP(A1,Sheet1!A:B,2,FALSE)
  • 要是需要提取非连续列的数据,用INDEX+MATCH更稳妥,比如提取Sheet1中A列匹配Sheet2 A1的C列数据:
    =INDEX(Sheet1!C:C,MATCH(Sheet2!A1,Sheet1!A:A,0))

2. 条件筛选提取

  • 新版Excel(365/2021+)直接用FILTER函数一键提取符合条件的所有行,比如提取Sheet1中B列数值大于100的全部数据,在Sheet2的A1输入:
    =FILTER(Sheet1!A:D,Sheet1!B:B>100)
  • 旧版Excel用数组公式,输入后按Ctrl+Shift+Enter确认,下拉填充直到出现#NUM!停止:
    =INDEX(Sheet1!A:A,SMALL(IF(Sheet1!B:B>100,ROW(Sheet1!B:B)),ROW(A1)))

二、VBA宏(适合批量/复杂规则提取)

按Alt+F11打开VBA编辑器,插入模块后粘贴代码,根据自己的需求修改条件:

Sub ExtractDataToSheet2()
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim lastRow1 As Long, lastRow2 As Long
    Dim i As Long
    
    Set ws1 = ThisWorkbook.Sheets("Sheet1")
    Set ws2 = ThisWorkbook.Sheets("Sheet2")
    
    lastRow1 = ws1.Cells(Rows.Count, "A").End(xlUp).Row
    lastRow2 = ws2.Cells(Rows.Count, "A").End(xlUp).Row + 1
    
    '示例:提取Sheet1中A列非空且B列数值大于50的行,可自行修改条件
    For i = 2 To lastRow1 '假设第1行是表头
        If ws1.Cells(i, "A").Value <> "" And ws1.Cells(i, "B").Value > 50 Then
            ws1.Rows(i).Copy ws2.Rows(lastRow2)
            lastRow2 = lastRow2 + 1
        End If
    Next i
    
    MsgBox "提取完成!"
End Sub

修改代码里的判断条件和列号,运行宏就能批量提取数据。

三、Power Query(适合大数据量/重复更新提取)

  1. 选中Sheet1的数据区域,点击「数据」选项卡→「从表格/区域」,勾选「我的表格有标题」进入编辑器。
  2. 在编辑器里用筛选器选择要保留的行/列,或者添加条件列筛选目标数据。
  3. 点击「关闭并上载至」,选择Sheet2的起始单元格,确认加载。后续Sheet1数据更新后,右键Sheet2的数据区域→「刷新」就能同步最新提取结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 13:47:34