1. DATE-日期构造函数
1)概述
| 语法 | DATE(year,month,day) | 返回代表特定日期的序列号 |
|---|---|---|
| 参数1 | year | 代表年,可为一到四位数 |
| 参数2 | month |
|
| 参数3 | day |
|
2)注意事项
月和日为 1 到 9 之间的数字时,不需要在前面加上 0 ,直接写数字,例如: DATE(2011, 2, 1) 即可。
若需要处理公式中日期的一部分,如年或月等,则可用此公式。若年,月和日是函数而不是函数中的常量,则此公式最能体现其作用。
3)示例
| 公式 | 结果 |
|---|---|
| DATE(1978, 9, 19) | 1978 年 9 月 19 日 |
| DATE(1211, 12, 1) | 1211 年 12 月 1 日 |
2. DATEDELTA-日期偏移计算函数
1)概述
| 语法 | DATEDELTA(date, deltadays) | 返回一个日期 date 后 deltadays 的日期 |
|---|---|---|
| 参数 | deltaDays | 可以为正值,负值,零 |
2)示例
| 公式 | 结果 |
|---|---|
| DATEDELTA("2008-08-08", -10) | 2008-07-29 |
| DATEDELTA("2008-08-08", 10) | 2008-08-18 |
3. DATEDIF-智能日期差值函数
1)概述
| 语法 | DATEDIF(start_date,end_date,unit,method) | 返回两个指定日期之间相差的天数、整月数或整年数 |
|---|---|---|
| 参数1 | start_date | 代表所指定时间段的起始日期 |
| 参数2 | end_date | 代表所指定时间段的结束日期 |
| 参数3 | unit | 指定返回结果的单位类型 |
| 参数4 | method | 可选参数,默认返回日期差值的绝对值 |
2)注意事项
若 unit="Y",返回指定日期之间的整年数。
若 unit="M",返回指定日期之间的整月数。
若 unit="D",返回指定日期之间的天数。
若 unit="MD",忽略年和月,返回指定日期之间的天数。
若 unit="YM",忽略年和日,返回指定日期之间的整月数。
若 unit="YD", 忽略年份,返返回指定日期之间的天数。
若 method=1,返回日期差值的绝对值。
若 method=-1,返回日期差值的实际正负结果。
3)示例
| 公式 | 结果 | 说明 |
|---|---|---|
| DATEDIF("2001/2/28","2004/3/20","Y") | 3 | 即在 2001 年 2 月 28 日与 2004 年 3 月 20 日之间有 3 个整年 |
| DATEDIF("2001/2/28","2004/3/20","M") | 36 | 即在 2001 年 2 月 28 日与 2004 年 3 月 20 日之间有 36 个整月 |
| DATEDIF("2001/2/28","2004/3/20","D") | 1116 | 即在 2001 年 2 月 28 日与 2004 年 3 月 20 日之间有 1116 个整天 |
| DATEDIF("2001/2/28","2004/3/20","MD") | 8 | 即忽略月和年后,2001 年 2 月 28 日与 2004 年 3 月 20 日的差为 8 天 |
| DATEDIF("2001/1/28","2004/3/20","YM") | 2 | 即忽略日和年后,2001 年 1 月 28 日与 2004 年 3 月 20 日的差为 2 个月 |
| DATEDIF("2001/2/28","2004/3/20","YD") | 21 | 即忽略年后,2001 年 2 月 28 日与 2004 年 3 月 20 日的差为 21 天 |
4. DATESUBDATE-日期差值计算函数
1)概述
| 语法 | DATESUBDATE(date1, date2, op) | 返回两个指定日期之间的时间差 |
|---|---|---|
| 参数1 | date1 | 代表所指定时间段的起始日期 |
| 参数2 | date2 | 代表所指定时间段的结束日期 |
| 参数3 | op | 指定返回结果的单位类型,其中支持:
|
2)注意事项
计算结果默认为 date1-date2 ,会考虑正负情况。
3)示例
| 公式 | 结果 |
|---|---|
| DATESUBDATE("2008-08-08", "2008-06-06","h") | 1512 |
5. DAY-日分量提取函数
1)概述
| 语法 | DAY(serial_number) | 返回指定日期中的日。DAY 是介于 1 和 31 之间的一个数 |
|---|---|---|
| 参数 | serial_number | 指定的日期,参数为空时默认为当天日期 |
2)注意事项
复杂表格中将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。
3)示例
| 公式 | 结果 |
|---|---|
| DAY("2000/1/1") | 1 |
| DAY("2006/05/05") | 5 |
| DAY("1997/04/20") | 20 |
| DAY(35796) | 1 |
6. DAYS360-金融日差计算函数
1)概述
| 语法 | DAYS360(start_date,end_date,method) | 按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),返回两日期间相差的天数 |
|---|---|---|
| 参数1 | start_date | 开始日期 |
| 参数2 | end_date | 结束日期 |
| 参数3 | method | 可选参数,指定在计算中是采用欧洲方法还是美国方法
|
2)注意事项
复杂表格中将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。
3)示例
| 公式 | 结果 |
|---|---|
| DAYS360("1998/1/30", "1998/2/1") | 1 |
7. DAYSOFMONTH-月份天数计算函数
1)概述
| 语法 | DAYSOFMONTH(date) | 返回从 1900 年 1 月后某年某月包含的天数 |
|---|---|---|
| 参数 | date | 日期 |
2)示例
| 公式 | 结果 |
|---|---|
| DAYSOFMONTH("1900-02-01") | 28 |
| DAYSOFMONTH("2008/04/04") | 30 |
8. DAYSOFQUARTER-季度天数计算函数
1)概述
| 语法 | DAYSOFQUARTER(date) | 返回从 1900 年 1 月后某年某季度的天数 |
|---|---|---|
| 参数 | date | 日期 |
2)示例
| 公式 | 结果 |
|---|---|
| DAYSOFQUARTER("2009-02-01") | 90 |
DAYSOFQUARTER("2009/05/05") | 91 |
9. DAYSOFYEAR-年度天数计算函数
1)概述
| 语法 | DAYSOFYEAR(year) | 返回 1900 年以后某年包含的天数 |
|---|---|---|
| 参数 | year | 年份 |
2)示例
| 公式 | 结果 |
|---|---|
| DAYSOFYEAR(2008) | 366 |
10. DAYVALUE-日期序列值转换函数
1)概述
| 语法 | DAYVALUE(date) | 返回 1900 年至 date 日期所经历的天数 一个日期匹配一个系列数,方便用户对日期进行数值式计算 |
|---|---|---|
| 参数 | date | 需要转换的日期,支持日期格式、代表日期的文本格式(如 "2000/2/28")及数字格式(整数,如 1000001) |
2)注意事项
如果 date 参数不合法,则返回 1900 年 1 月 1 日至当天时间所经历的天数。例如:若今天为 2020/09/01,DAYVALUE("2008/02/") 等于 44074,DAYVALUE("0.877766")等于 44074
如果 date 是数字类型:当 date 大于 1000000 时,会被当作是 unix 时间。unix 时间是指从 1970 年 1 月 1 日 开始所经过的秒数,不考虑闰秒;当 date 小于或等于 1000000 时,会被当作是距 1900 年 1 月 1 日的天数。
3)示例
| 公式 | 结果 |
|---|---|
| DAYVALUE("2000/1/1") | 36525 |
| DAYVALUE( 1000001) | 25568 |
11. HOUR-小时提取函数
1)概述
| 语法 | HOUR(serial_number) | 返回某一指定时间的小时数 函数指定 HOUR 为 0(0:00)到 23(23:00)之间的一个整数 |
|---|---|---|
| 参数 | Serial_number | 表示某个指定时间 |
2)示例
| 公式 | 结果 |
|---|---|
| HOUR("11:32:40") | 11 |
12. MINUTE-分钟提取函数
1)概述
| 语法 | MINUTE(serial_number) | 返回某一指定时间的分钟数,其值是介于 0 与 59 之间的一个整数 |
|---|---|---|
| 参数 | serial_number | 表示某个指定时间 |
2)示例
| 公式 | 结果 |
|---|---|
| MINUTE("15:36:25") | 36 |
13. MONTH-月份提取函数
1)概述
| 语法 | MONTH(serial_number) | 返回日期中的月,月是介于 1 和 12 之间的一个数 |
|---|---|---|
| 参数 | serial_number | 含有所求的月的日期,参数为空时默认为当天日期 |
2)注意事项
复杂表格中将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。
在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。
3)示例
| 公式 | 结果 |
|---|---|
| MONTH("2004/5/5") | 5 |
| MONTH(35796) | 1 |
14. MONTHDELTA-月份偏移函数
1)概述
| 语法 | MONTHDELTA(date,delta) | 返回指定日期 date 后 delta 个月的日期 |
|---|---|---|
| 参数1 | date | 指定日期 |
| 参数2 | delta | 整数,月份增减量 |
2)示例
| 公式 | 结果 |
|---|---|
| MONTHDELTA("2008-08-08", 4) | 2008-12-08 |
| MONTHDELTA("2008-08-08", -4) | 2008-04-08 |
15. NOW-当前时间函数
1)概述
| 语法 | NOW() | 获取当前时间 |
|---|
2)示例
| 公式 | 结果 |
|---|---|
NOW() 如果系统时间是 2017-06-27 14:58:06 | 2017-06-27 14:58:06 |
16. SECOND-秒数提取函数
1)概述
| 语法 | SECOND(serial_number) | 返回某一指定时间的秒数,其值是介于 0 与 59 之间的一个整数 |
|---|---|---|
| 参数 | serial_number | 表示某个指定时间 |
2)示例
| 公式 | 结果 |
|---|---|
| SECOND("15:36:25") | 25 |
| SECOND("15:36:25", "HH:mm:ss") | 25 |
17. TIME-时间合成函数
1)概述
| 语法 | TIME(hour,minute,second) | 返回指定的日期和时间,日期为当天的日期 时间为介于 0:00:00 与23:59:59 之间的时间,可返回 0 到 0.99999999 之间的对应数值 |
|---|---|---|
| 参数1 | hour | 介于 0 到 23 之间的数 |
| 参数2 | minute | 介于 0 到 59 之间的数 |
| 参数3 | second | 介于 0 到 59 之间的数 |
2)示例
| 公式 | 结果 |
|---|---|
TIME(14,40,0) 若当前时间为 2022-06-17 | 2022-06-17 14:40:00 |
18. TODATE-日期标准化函数
1)概述
| 语法 | TODATE() | 将各种日期形式的参数转换为日期类型 |
|---|
2)注意事项
格式中月份必须大写 MM,年份小写:yy(如果是用来解析形如“20081230”格式,则可写为yyyyMMdd,其余不可使用 yyyy 形式),天份小写:dd
第二个参数必须与第一个日期格式一致。例如,第一个参数为"2007/10/15"格式,那么第二个参数格式需写为 yyyy/MM/dd 格式,即 TODATE("2007/10/15","yyyy/MM/dd"),第一个参数为"2007-10-15"格式,那么第二个参数格式需写为 yyyy-MM-dd 格式,即 TODATE("2007-10-15","yyyy-MM-dd"),因此 todate 与 today 同时使用,第二个参数必须为 yyyy-MM-dd 格式,即TODATE(TODAY(),"yyyy-MM-dd")
3)示例
参数有 5 种形式,如下表所示:
| 参数 | 公式 | 结果 |
|---|---|---|
| 参数是日期类型,直接将这个参数返回 | TODATE(DATE(2007,12,12)) | 2007-12-12 |
参数是文本类型,是以从 1970 年 1 月 1 日 0 时 0 分 0 秒开始的毫秒数,返回对应的年月日时分秒。 备注:如果 date 是数字类型,当 date 大于 1000000 时,会被当作是 unix 时间;当 date 小于或等于 1000000 时,会被当作是距 1900 年 1 月 1 日的天数。 | TODATE(1023542354746) | 2002-06-08 21:19:14 |
| 参数是日期格式的文本,返回这个文本对应的日期 | TODATE("2007/10/15") TODATE("2007-6-8") | 2007-10-15 2007-06-08 |
有两个参数 第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式 注:"yyyyMMdd" 是用来解析形如“20081230”之类的日期格式的。其余不可使用 yyyy 形式,MM 需大写 | TODATE("1/15/07","MM/dd/yy") TODATE("20110830","yyyyMMdd") | 2007-01-15 2011-08-30 |
有三个参数 第一个参数是一个日期格式的文本,第二个参数是用来解析日期的格式,第三个参数为解析日期的语言,如:zh(中文),en(英文) 其中第三个参数为可选参数,默认使用服务器的语言作为解析日期的语言。使用“zh(中文)”才能够正常解析“星期一”这个字符串。 注:如果 EEE 和 MM/dd/yy 不一致, 以 MM/dd/yy 为主。 | TODATE("星期三1/15/07","EEEMM/dd/yy","zh") 实际是星期一 而不是星期三 | 2007-01-15 |
19. TODAY-当前日期函数
1)概述
| 语法 | TODAY() | 获取当前的日期 |
|---|
2)示例
| 公式 | 结果 |
|---|---|
TODAY() 若当前日期是 2011-06-20 | 2011-06-20 |
20. WEEKDAY-星期提取函数
1)概述
| 语法 | WEEKDAY(serial_number) | 获取日期并返回星期 返回值为介于 0 到 6 之间的某一整数,分别代表星期中的某一天(从星期日到星期六) |
|---|---|---|
| 参数 | serial_number | 输入的日期 |
2)注意事项
复杂表格中将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。
若公式引用单元格,单元格内容为空或单元格内容为非日期格式时,默认返回当天的星期数。但不建议直接使用公式 WEEKDAY(),可能存在风险。
3)示例
| 公式 | 结果 |
|---|---|
| WEEKDAY("2005/9/10") | 6 |
| WEEKDAY("2005/9/11") | 0 |
| WEEKDAY(35796) | 4 |
21. YEAR-年份提取函数
1)概述
| 语法 | YEAR(serial_number) | 返回日期中的年 返回值是介于 1900 和 9999 之间的一个数 |
|---|---|---|
| 参数 | serial_number | 含有所求的年的日期,参数为空时默认为当天日期 |
2)注意事项
复杂表格中将日期保存为系列数,一个系列数代表一个与之匹配的日期,以方便用户对日期进行数值式计算。在 1900 年日期系统中,复杂表格将 1900 年 1 月 1 日保存为系列数 2,将 1900 年 1 月 2 日保存为系列数 3,将 1900 年 1 月 3 日保存为系列数 4……依此类推。如在1900 年日期系统,1998 年 1 月 1 日存为系列数 35796。
3)示例
| 公式 | 结果 |
|---|---|
| YEAR("2000/1/1") | 2000 |
| YEAR("2006/05/05") | 2006 |
| YEAR("1997/04/20") | 1997 |
| YEAR(35796) | 1998 |
22. YEARDELTA-年份偏移计算函数
1)概述
| 语法 | YEARDELTA(date, delta) | 返回指定日期 date 后 delta 年的日期 |
|---|---|---|
| 参数1 | date | 指定日期 |
| 参数2 | delta | 年份增减量 可以是正值、负值、零。正值表示后推,负值表示前推 |
2)示例
| 公式 | 结果 |
|---|---|
| YEARDELTA("2008-10-10",10) | 2018-10-10 |
