掌握Excel日期计算:从基础到高级技巧 点击使用AI助手 了解更多
发布于 2024-11-30 liusiyang 3 编辑
在处理数据时,日期计算是不可或缺的一部分。掌握Excel中的日期函数不仅可以帮助你快速完成任务,还能让你在数据处理中更加得心应手。本文将带你一步步了解如何利用Excel内置的日期函数来简化你的工作,无论是计算工作日还是确定特定日期,都能让你更加高效。
👋 | 自己挖的坑,记得要回填。 |
前不久,某同学发了个帖子https://bbs.wps.cn/topic/20000
由于帖子编号是两万这个整数,心生羡慕,顺手就发了个简单的难题。
过了那么久,还是自己回填吧。
描述 | 公式 |
今天是 | =TODAY() |
后是 | =TODAY()+n周*7 |
经历的工作日 | =SUMPRODUCT((WEEKDAY(ROW(INDIRECT("A1:A"&(7*n))),2)>=2)*(WEEKDAY(ROW(INDIRECT("A1:A"&(7*n))),2)<=6)) |
公式显示不完整的请往⟹⟹拖滚动条
还是老习惯,公式解释下:
=TODAY表示今天;
=TODAY()+n*7,n是n周的意思,n≥1;
=SUMPRODUCT((WEEKDAY(ROW(INDIRECT("A1:A"&(7*B3))),2)>=2)*(WEEKDAY(ROW(INDIRECT("A1:A"&(7*n))),2)<=6)),这个公式有点长,但看了以下的解释后,就一点也不麻烦了,甚至还是那么长。
ROW(INDIRECT("A1:A"&(7*n))): 创建一个从 A1 到 A(7n) 的单元格范围,其中 7n 代表 n 周的天数;
WEEKDAY(ROW(INDIRECT("A1:A"&(7*n))),2):获取每个单元格日期的星期数,其中 2 表示星期一到星期六。
(WEEKDAY(ROW(INDIRECT("A1:A"&(7*n))),2)>=2)*(WEEKDAY(ROW(INDIRECT("A1:A"&(7*n))),2)<=6):检查每个单元格日期是否为周一至周五。如果是,则返回 1;否则,返回 0。
SUMPRODUCT: 将所有结果相加,得到从今天开始 n 周后经历的周一至周五数量。
以上填坑完毕,下面补充几个关于日期的计算公式
描述 | 公式 |
本周一 | =TODAY()-WEEKDAY(TODAY(),2)+1 |
上周一 | =TODAY()-WEEKDAY(TODAY(),2)-6 |
本周日 | =TODAY()-WEEKDAY(TODAY(),2)+7 |
上周日 | =TODAY()-WEEKDAY(TODAY(),2) |
本月初 | =EOMONTH(TODAY(),-1)+1 |
本月末 | =EOMONTH(TODAY(),0) |
上上月 | =EOMONTH(TODAY(),-2) |
上月 | =EOMONTH(TODAY(),-1) |
本月 | =EOMONTH(TODAY(),0) |
下月 | =EOMONTH(TODAY(),1) |
下下月 | =EOMONTH(TODAY(),2) |
本季度初 | =DATE(YEAR(TODAY()),INT((MONTH(TODAY())-1)/3)*3+1,1) |
本季度末(公式1) | =EOMONTH(DATE(YEAR(TODAY()),INT((MONTH(TODAY())-1)/3)*3+1,1),2) |
本季度末(公式2) | =DATE(YEAR(TODAY()),CEILING(MONTH(TODAY()),3)+1,0) |
补充的公式都是基于基本的函数,并没有加入过多的计算,也没有引用其他单元格的发生,可以在其他公式中随意的插入引用。
🔔 | 需要说明下本季度初的公式在EXCEL中的写法是=DATE(YEAR(TODAY()), FLOOR.MATH(MONTH(TODAY())-1, 3) + 1, 1),但是WPS不支持FLOOR.MATH函数,故改为了=DATE(YEAR(TODAY()),INT((MONTH(TODAY())-1)/3)*3+1,1) |
以上涉及到公式可以在金山文档:https://kdocs.cn/l/chdPjwe15wJ7中找到,欢迎大佬指正其中的错误或优化其中的公式。
通过本文的学习,你将能够熟练运用Excel中的日期函数来解决各种日期计算问题。无论是日常的工作需求还是复杂的数据分析,这些技巧都将助你一臂之力。不要忘记实践这些公式,让它们成为你数据处理工具箱中的利器。
原文链接:https://bbs.wps.cn/topic/28375