Excel网页数据采集合并及批量取消筛选技术咨询
网页数据采集合并优化方案(Power Query版)
方案一:重新导入时直接合并并添加日期列
- 打开Excel,点击「数据」→「获取数据」→「自网页」,输入目标URL后进入导航器
- 不要直接加载单个日期表,选择「加载到」→「仅创建连接」,把所有日期表转为工作簿连接
- 点击「数据」→「获取数据」→「自其他来源」→「空白查询」,打开Power Query编辑器
- 左侧连接栏全选所有日期对应的表,右键选「追加查询」→「追加为新查询」,生成合并后的表
- 点击「添加列」→「自定义列」,输入公式
= Source.Name,把新列重命名为「更新日期」(值就是原表的日期名称) - 整理数据(删除空行、调整列顺序等)后,点击「关闭并上载」,直接加载到单个工作表,给「更新日期」列加筛选器就能按日期查产品
方案二:针对已导入的多工作表进行合并补全
- 点击「数据」→「获取数据」→「自文件」→「自工作簿」,选中当前Excel文件,导航器里全选所有日期工作表
- 选择「加载到」→「仅创建连接」,重复方案一的追加查询步骤,添加「更新日期」列后加载到新工作表
额外问题解答
1. 快速合并多工作表到单个工作表的方法
- Power Query法(推荐):按上面方案二的步骤操作,自动合并还能轻松添加源表标识列,适合复杂数据场景
- VBA宏法(简单场景用):按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码,运行就能自动合并到新工作表:
Sub MergeSheets() Dim ws As Worksheet, newWs As Worksheet Set newWs = ThisWorkbook.Sheets.Add(After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)) newWs.Name = "合并表" For Each ws In ThisWorkbook.Sheets If ws.Name <> newWs.Name Then ws.UsedRange.Copy newWs.Cells(newWs.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1) End If Next ws End Sub
注:宏会直接粘贴所有数据,需要手动加列标注来源工作表
2. 一次性取消所有工作表筛选的快捷方式
Excel没有原生的全工作表取消筛选快捷键,用VBA宏绑定自定义快捷键是最方便的方法:
- 按Alt+F11打开VBA编辑器,插入模块,粘贴以下代码:
Sub ClearAllFilters() Dim ws As Worksheet For Each ws In ThisWorkbook.Sheets If ws.FilterMode Then ws.ShowAllData Next ws End Sub
- 绑定快捷键:点击「文件」→「选项」→「自定义功能区」→「键盘快捷方式:自定义」,类别选「宏」,选中
ClearAllFilters,设置快捷键(比如Ctrl+Shift+Alt+L)后确定,以后按快捷键就能一键取消所有表的筛选
内容的提问来源于stack exchange,提问作者NND
相关产品推荐
相关产品推荐

