编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

筛选 Excel 数据表中指定天数前的数据,并放置到指定位置

wxchong 2024-10-31 15:31:05 开源技术 90 ℃ 0 评论

回复读者提问:有一个庞大的数据表,如何能快速提取出指定日期前若干天的所有数据,并复制到指定的区域?


案例 :


下图是业绩申报汇总表,需要将 4 月 1 日的 3 天前的所有数据提取到 G 至 I 列。


解决方案:


本文教大家两种最简单的方法。

  1. 高级筛选
  2. 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 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。


Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表