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表示即可!

今天没有划水,记得“三连”鼓励一下,小编两个小时的冥思苦想!

本文

由“壹伴编辑器”提供技术支持

点个“在看”表示朕

已阅

(0)

相关推荐