Excel如何从第1行开始按步长60间隔提取指定行数据
Excel按步长60间隔提取指定行的实现方法
下面给出三种不同场景下的实现方案,按需选择即可:
方法1:辅助列+筛选(无公式基础也能快速操作)
- 在现有数据右侧新增空白辅助列,第一行单元格输入公式
=MOD(ROW()-1,60) - 选中该公式单元格,下拉填充至所有数据行末尾
- 选中辅助列,按
Ctrl+Shift+L开启筛选功能,点击筛选按钮仅勾选值为0的选项 - 筛选后剩余的行就是目标行,直接复制到其他区域使用即可,后续可按需删除辅助列
方法2:公式批量提取(数据更新时自动同步结果)
适合需要后续自动更新提取结果的场景:
- 选择空白区域的第一个单元格,输入公式提取第一列内容:
=INDEX(A:A,1+(ROW(A1)-1)*60) - 按住该单元格右下角填充柄向右拉2格(适配你3列的需求),自动生成第二、三列的提取公式
- 选中已经生成的3个公式单元格,向下拉填充,直到单元格出现空白/错误值即可停止,前面有内容的行就是所有提取结果
- 如需屏蔽错误提示,可调整公式为
=IFERROR(INDEX(A:A,1+(ROW(A1)-1)*60),"")
方法3:VBA宏(高频重复操作效率最高)
如果需要经常做同类提取操作,用宏可以一键完成:
- 按
Alt+F11打开VBA编辑器,依次点击「插入」→「模块」 - 粘贴如下代码到编辑区,按需修改代码中的工作表名称即可:
Sub 间隔60行提取数据() Dim srcRow As Long, resRow As Long resRow = 1 ' 示例是从Sheet1提取到Sheet2,可根据实际表名修改 For srcRow = 1 To Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row Step 60 Sheets("Sheet1").Rows(srcRow).Copy Sheets("Sheet2").Rows(resRow) resRow = resRow + 1 Next srcRow End Sub
- 按
F5运行代码,所有提取结果会直接生成到目标工作表中
内容的提问来源于stack exchange,提问作者Albara malkawi
相关产品推荐
相关产品推荐

