Excel日期函数20关,你能闯几关?
今天我们来对日期相关函数做一个小结,大部分我们都已经写过文章,所以我们就采用快问快答的方式来快速过一下!看看你目前学会了几个,能闯几关,记得自己先思考一下,看是否能写出!最后一个有亿点点难度!
问题1:今日日期?
Today函数表示当前系统中的日期,没有特殊情况,表示当前日期,该函数随系统日期变化而变化!
问题2:当前日期时间
NOW函数是一个基本同TODAY都是无参数函数,只是多了时间部分,也同系统日期时间变动,一般做这种函数为易失性函数!
问题3:当前时间
Excel中没有直接表示当前时间的方式,但是我们可以通过NOW和TODAY的日期差额算出时间,注意需要把单元格格式设置为时间,否则显示小数!
问题4:当前年份
YEAR函数可以获取给定日期的年份,当然要求日期是标准的日期!
问题5:当前月份
MONTH函数和TODAY一样可以获取指定日期的月份,也只有一个参数
问题6:今天是多少号?
YEAR、MONTH和DAY三人组,是我们常见的年月日,同样给定一个日期即可获取给定日期的日!
问题7:今天周几
WEEKDAY(日期,2)第二参数国内固定2即可,也就是我们只要第一参数给定日期即可获得给定日期对应星期几了,这里的2表示星期二!数值的结果方便我们做一些星期相关的判断!
如果不习惯数值,先看中文的日期!
TEXT函数可以格式化日期数值!这里4个a表示中文的星期,3个a的情况下只有大写的数值,没有星期两个字!
问题8:本月最后一天的日期?
EOMONTH(日期,偏移月份)结果范围偏移指定月份后的日期对应月份最后一天的日期,这里0表示本月(没有偏移),正数表示向后,负数表示向前!
问题9:本月有多少天?
只需要在问题8的基础上嵌套DAY即可!
问题10:3个月后的日期?
EDATE(日期,偏移月份) 和EOMONTH类似,只是他的结果是偏移指定月份后对应的日期!常用于合同签订结束日期的计算!同样负数向前,正数向后!
问题11:现在是今年的第几周?
WEEKNUM和WEEKDAY用法类似,第二参数都表示每周以星期几作为起始,2表示周一,所以第二参数国内不用考虑都是2!
问题12:今年是平年还是闰年
=IF(DAY(DATE(2020,3,0))=29,"闰年","平年")
DATE(年,月,日),日为0表示上月的最后一天!对应的如果月和日超过范围会自动转化成对应的日期!这里我们也可以使用EOMONTH函数,只是说明一下DATE函数用法!2月有29日表示闰年!
关于平年和闰年的写法还有很多,我们罗列几个:
根据定义:=IF(OR(MOD(YEAR(TODAY()),400)=0,AND(MOD(YEAR(TODAY()),4)=0,MOD(YEAR(TODAY()),100)<>0)),"闰年","非闰年")
--转日期自动添加年份,如果没有29日报错,COUTN结果就是0,负责就是1 =IF(COUNT(--"2-29"),"闰年","平年")
1900年算是Excel日期系统的BUG,考虑此情况:
=TEXT(A2+400&-2&-29,"闰年;;;平年")
问题13:当前属于哪一个季度
=LEN(2^MONTH(TODAY()))
其他写法还有很多,随意罗列几个:
=MONTH(MONTH(A2)&0)
=MATCH(MONTH(A2),{1,4,7,10})
=ROUNDUP(MONTH(A2)/3,)
=INDEX({1,2,3,4},(MONTH(A2)+2)/3)
问题14:5天后的工作日是多少号?
=WORKDAY(TODAY(),5)
WORKDAY表示工作日,可以根据指定日期和天数自动计算对应的日期!
比如今天是20201027,过三天就是周六和周日,所以5天后是11-3!
问题15:2016-1-18日入职,工龄几年几月?
=TEXT(SUM(DATEDIF(--"2016-1-18",TODAY(),{"y","ym"})*{100,1}),"0年00月")
关于DATEDIF更多用法:HR必学的日期处理函数-DATEDIF
问题16:如果表示中文和英文月份
英文月份
=TEXT(TODAY(),"mmmm")
=TEXT(TODAY(),"mmm") 结果Oct简写
中文月份:
=TEXT(TODAY(),"[$-804]mmmm")
问题17:如何表示中文日期
=TEXT(TODAY(),"[dbnum2]yyyy年mm月dd日")
如果要表示中文小写 修改为dbnum1即可!
问题18:今年有多少天?
=365+COUNT(-"2-29")
365天+是否是闰年(366)!
问题19:本周的开始日期
=TODAY()-WEEKDAY(TODAY(),3)
WEEKDAY第二参数使用3表示使用0表示周一,今天简单今天周几正好就是周一的日期!本周日的日期直接+6即可
问题20:周一和周三休息,本月工作多少天
=NETWORKDAYS.INTL(EOMONTH(TODAY(),-1)+1,EOMONTH(TODAY(),0),"1010000")
第三参数我们可以使用7个(0或者1)来表示周一到周日哪一天是工作日,0表示工作日,1表示非工作日,所以我们是1010000,表示周一和周三是非工作日(休息日),常规的周六周日休息就是0000011表示即可!
今天没有划水,记得“三连”鼓励一下,小编两个小时的冥思苦想!
本文
由“壹伴编辑器”提供技术支持
点个“在看”表示朕
已阅