备注:该博客内容根据技术教学视频整理与总结而成,教学视频来自于office教程-龙龙老师的Excel2019视频教程合集(81节)。

一、日期和时间的基础知识

有效日期

1900/1/1

9999/12/31

对应常规数字

1

2958466

时间

16:05:09

0:00:00

对应数字

0.670243056

0

注:日期对应整数,时间对应小数

日期时间


小时



数值

1

24

1440

86400

常用快捷键

常规

Ctrl+Shift+~

时间

Ctrl+Shift+@

当前时间

Ctrl+Shift+;

日期

Ctrl+Shift+#

当前日期

Ctrl+;


二、年YEAR、月MONTH、日DAY、日期DATE函数

  • YEAR(serial_number)
  • MONTH(serial_number)
  • DAY(serial_number)
    注:日期有多种输入方式:带引号的文本串(比如:1998/01/30)、系列数(比如:使用1900日期系统则35825表示1998年1月30日)或其他函数公式的结果(比如:DATEVALUE(“1998/1/30")
  • MONTH(serial_number)
    注:DATE(2020,2,)返回值为2020/1/31

三、TODAY、NOW函数

  • TODAY()   没有参数,返回当前日期
  • NOW()      没有参数,返回当前日期和时间

四、隐藏的DATEDIF

语法:DATEDIF(start_date,END_start,unit)
           DATEDIF(起始日期,结束日期,返回单位)
           注:结束日期必须大于起始日期

举例:DATEDIF(A1,TODAY(),”Y“)   #计算年数差
           DATEDIF(A1,TODAY(),”M“)   #计算月数差
           DATEDIF(A1,TODAY(),”D“)   #计算天数差
           ”YM“指两日期中月数的差,忽略日期中的年份(相当同年份月数相减)
           “MD”指两日期中天数的差,忽略日期中的年份和月份(相当于同年同月相减)
           ”YD“指两日期中天数的差,忽略日期中的年份(相当同年日期相减)


五、EOMONTH函数,用于倒计时,调整日期

语法:EOMONTH(start_date,months)

说明:为给定日期,指定向前或向后的月份数字,返回指定月份后的当月的最后一天。months为正值将生成未来日期,为负值将生成过去日期

举例:EOMONTH(2020/2/15,9)  返回值:2020/11/30


六、EDATE函数,以月份推日期

语法:EDATE(start_date,months)

说明:months为正值将生成未来日期,为负值将生成过去日期

举例:EDATE(2020/2/15,9)  返回值:2020/11/15


七、WEEKDAY和TEXT函数

WEEKDAY语法:WEEKDAY(serial_number,return_type)
           WEEKDAY(指定日期,确定返回值类型的数字)
说明:return_type为数字1或省略则1至7代表星期天到星期六
                                 数字2则1至7代表星期一到星期天
                                 数字3则0至6代表星期一到星期日
举例:WEEKDAY(”2001/8/28“,2)  返回2(星期二)
           WEEKDAY(”2003/02/23",3) 返回6(星期日)

TEXT语法:TEXT(value,format_text)
说明:format_text为 aaaa 显示为中文星期几全称; aaa 显示为中文星期几简称
举例:TEXT(WEEKDAY(D4),“aaaa”)  返回:星期六


八、WEEKNUM函数指定日期为全年第几周

语法:WEEKNUM(serial_number,[return_type])
说明:serial_number应使用DATE函数输入日期,或者将日期作为其他公式或函数结果输入。如果日期以文本形式输入,则会出现问题。


九、WORKDAY函数

语法:WORKDAY(start_date,days,[holidays])
说明:1、days为start_date之前或之后不含周末及节假日的天数
           2、days为正值将生成未来日期,为负值将生成过去日期
           3、holidays可以是包含日期的单元格区域,也可以是由代表日期的序列号所构成的数组常量,默认周六日为节假日


十、自定义周末和节假日WORKDAY.INTL函数

语法:WORKDAY.INTL(start_date,days,[weekend],[holidays])
说明:weekend是一个用于指定周末日的周末数字或字符串
           星期一为周末则为“1000000”,1代表放假的那一天,以此类推,星期二为周末则为“0100000”


十一、返回日期之间的工作日数NETWORKDAYS函数

语法:NETWORKDAYS(start_date,end_date,[holidays])
说明:默认周六日为放假并计入


十二、自定义周末和节假日,返回日期之间的工作日数NETWORKDAYS.INTL函数

语法:NETWORKDAYS.INTL(start_date,end_date,[weekend],[holidays])
           NETWORKDAYS.INTL(开始日期,结束日期,指定周末日的周末数字或字符串,自定义节假日)
说明:weekend是一个用于指定周末日的周末数字或字符串
           星期一为周末则为“1000000”,1代表放假的那一天,以此类推,星期二为周末则为“0100000”


十三、时分秒时间函数

语法:HOUR(serial_number)    #提取小时
           MINTUE(serial_number) #提取分钟
           SECOND(serial_number)#提取秒
           TIME(hour,mintue,second)