回复读者提问:有一个庞大的数据表,如何能快速提取出指定日期前若干天的所有数据,并复制到指定的区域?
案例 :
下图是业绩申报汇总表,需要将 4 月 1 日的 3 天前的所有数据提取到 G 至 I 列。
解决方案:
本文教大家两种最简单的方法。
高级筛选
Power Query
解决方案 1:高级筛选
1. 在 D 列添加“前几天”辅助列,统计申报日期是 4 月 1 日前的第几天:
在 D2 单元格输入以下公式,下拉复制公式:
=IFERROR(DATEDIF(C2,"2020/4/1","d"),"不适用")
公式释义:
DATEDIF(C2,"2020/4/1","d"):起始日期为 C2,结束日期为 2020/4/1,统计二者相差的天数
IFERROR(...,"不适用"):当起始日期比 4 月 1 日晚时,datedif 会返回错误值,将错误值显示为“不适用”
有关 datedif 函数的详解,请参阅Excel函数(五) – 用 datedif 写情书。
2. 在 F 列添加筛选条件:
标题必须与数据表中需要筛选的列标题一致
F2 单元格中输入条件项
3. 选中数据表区域 --> 选择菜单栏的“数据”-->“排序和筛选”区域的“高级”
4. 在弹出的对话框中选择条件区域 --> 选择“将筛选结果复制到其他位置”--> 在“复制到”区域选择 G1:J1 区域 --> 点击“确定”
符合条件的筛选结果就复制到了指定区域。
5. 删除 J 列,就是最终结果。
有关高级筛选的详细用法,请参阅Excel实用tips(18) –“或”条件筛选。
解决方案 2:Power Query
1. 用 datedif 函数计算相隔天数,同解决方案 1。
2. 选中数据表区域的任意单元格 --> 选择菜单栏的“数据”-->“从表格”
3. 在弹出的对话框中点击“确定”
表格已上传至 Power Query。
默认的日期格式后面还带有时间,我们将时间除去。
4. 选中“申报日期”列 --> 选择菜单栏的“主页”-->“数据类型:日期/时间”-->“日期”
5. 在弹出的对话框中点击“替换当前转换”
6. 选中“前几天”旁边的筛选箭头 --> 勾选“3”--> 点击“确定”
7. 选中“前几天”列 --> 右键单击,在弹出的菜单中选择“删除”
8. 选择菜单栏的“主页”-->“关闭并上载”-->“关闭并上载至...”
9. 在弹出的对话框中的“选择应上载数据的位置”区域选择“现有工作表”--> 选择 G1 单元格 --> 点击“加载”
筛选结果已复制到另指定位置。这个方法还具有可拓展性,将来无论蓝色中的数据发生任何更改,只要在绿色区域刷新一下,结果就会自动更新。
Excel学习世界
转发、在看也是爱!
领取专属 10元无门槛券
私享最新 技术干货