如何用 Excel 的 Power Query 计算两个日期之间相差几个星期?

deer332025-02-01技术文章52

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

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

继教了大家如何在 Power Query 中计算两个日期之间相差的年、月、日之后,有同学私信我能不能再讲讲怎么计算相差的星期数?


好的,这就安排上。


案例:


计算下图 1 中的每个日期与 2024 年 12 月 31 日之间相差几个礼拜。


效果如下图 2 所示。


解决方案:


1. 选中数据表的任意单元格 --> 选择工具栏的“数据”-->“从表格”


2. 在弹出的对话框中保留默认设置 --> 点击“确定”


表格已上传至 Power Query。


3. 点击“日期”左侧的格式按钮 --> 在弹出的的菜单中选择“日期”


4. 在弹出的对话框中点击“替换当前转换”。


这样就去掉了日期后面不需要的时间。


5. 选择工具栏的“添加列”-->“自定义列”


6. 在弹出的对话框中输入以下公式 --> 点击“确定”:

Duration.TotalDays(#date(2024,12,31)-[日期])


公式释义:

  • #date 的作用是生成一个日期,参数的格式为 (yyyy,mm,dd);
  • Duration.TotalDays(...-[日期]):将刚才生成的日期与“日期”列相减,用 Duration.TotalDays 函数计算出二者相差的总天数


7. 再次选择工具栏的“添加列”-->“自定义列”


8. 在弹出的对话框中将列名设置为“到24年底还有几周”--> 输入以下公式 --> 点击“确定”:

Number.RoundUp([自定义]/7)


公式释义:

  • 将两个日期之间相差的天数除以 7,转换成星期;
  • Number.RoundUp 相当于 Excel 中的 RoundUp 函数,就是向上取整


9. 删除前三列。


10. 选择工具栏的“主页”-->“关闭并上载”-->“关闭并上载至”


11. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上载至的位置 --> 点击“加载”


这样就轻轻松松计算出所有日期离 24 年底还有几周。