05日期和时间函数
- 05x01 DATE 函数
- 语法
- 05x02 DATEDIF 函数
- 语法
- 05x03 DATEVALUE 函数
- 语法
- 05x04 DAY 函数
- 语法
- 05x05 DAYS 函数
- 语法
- 05x06 DAYS360 函数
- 语法
- 05x07 EDATE 函数
- 语法
- 05x08 EOMONTH 函数
- 语法
- 05x09 HOUR 函数
- 语法
- 05x10 ISOWEEKNUM 函数
- 语法
- 05x11 MINUTE 函数
- 语法
- 05x12 MONTH 函数
- 语法
- 05x13 NETWORKDAYS 函数
- 语法
- 05x14 NETWORKDAYS.INTL 函数
- 语法
- 05x15 NOW 函数
- 语法
- 05x16 SECOND 函数
- 语法
- 05x17 TIME 函数
- 语法
- 05x18 TIMEVALUE 函数
- 语法
- 05x19 TODAY 函数
- 语法
- 05x20 WEEKDAY 函数
- 语法
- 05x21 WEEKNUM 函数
- 语法
- 05x22 WORKDAY 函数
- 语法
- 05x23 WORKDAY.INTL 函数
- 语法
- 05x24 YEAR 函数
- 语法
- 05x25 YEARFRAC 函数
- 语法
- 关于日期:excel采用1900日期系统,第一个日期为 1900 年 1 月 1 日序列号为1,最大日期为9999年12月31日序列号为2958465。excel只认公历日期。
- 关于时间:excel将一天分为24*60*60=86400秒,某个时间的十进制数字=该时间换算的秒数/86400。(例如 0.78125 表示 6:45 PM)。
- excel时间序列号中,序列号中小数点右边的数字表示时间,左边的数字表示日期。
- excel的函数算两个日期之间有多少天的时候,是一端闭合,相当于数字直接相减,如果要算起始天数,需要在结果上加1。(例如excel计算2020-01-01和2020-01-31之间有30天,但是1月实际有31天,需要在excel结果上加1)。
05x01 DATE 函数
语法
详情见Excel函数大全-01最常用的十个函数
05x02 DATEDIF 函数
计算两个日期之间相隔的天数、月数或年数。
语法
DATEDIF(start_date,end_date,unit)
参数 | 说明 |
---|---|
start_date 必需 | 表示给定期间的第一个或开始日期的日期。 日期值有多种输入方式:带引号的文本字符串(例如 “2001/1/30”)、序列号(例如 36921,在商用 1900 日期系统时表示 2001 年 1 月 30 日)或其他公式或函数的结果(例如 DATEVALUE(“2001/1/30”))。 |
end_date 必需 | 用于表示时间段的最后一个(即结束)日期的日期。 |
Unit | 您希望返回的信息类型,详细说明见下表: |
Unit值 | 返回结果 |
---|---|
“Y” | 一段时期内的整年数。 |
“M” | 一段时期内的整月数。 |
“D” | 一段时期内的天数。 |
“MD” | start_date 与 end_date 之间天数之差。 忽略日期中的月份和年份。重要: 不推荐使用“MD”参数,因为存在相关已知限制。 参阅下面的“已知问题”部分。 |
“YM” | start_date 与 end_date 之间月份之差。 忽略日期中的天和年份 |
“YD” | start_date 与 end_date 的日期部分之差。 忽略日期中的年份。 |
注意:
- DATEDIF 函数在用于计算年龄的公式中很有用。
- 如果start_date大于 end_date,结果将#NUM!。
例子:
start_date | end_date | 公式 | 描述(结果) |
---|---|---|---|
1/1/2001 | 1/1/2003 | =DATEDIF(Start_date,End_date,“Y”) | 一段时期内的两个整年 (2) |
6/1/2001 | 8/15/2002 | =DATEDIF(Start_date,End_date,“D”) | 2001 年 6 月 1 日和 2002 年 8 月 15 日之间的天数为 440 (440) |
6/1/2001 | 8/15/2002 | =DATEDIF(Start_date,End_date,“YD”) | 忽略日期中的年份,6 月 1 日和 8 月 15 日之间的天数为 75 (75) |
已知问题:
“MD”参数可能导致出现负数、零或不准确的结果。 若要计算上一完整月份后余下的天数,可使用如下方法:
=DATEDIF(D17,E17,“md”) 并且结果为:5
此公式从单元格 E17 中的原始结束日期 (5/6/2016) 减去当月第一天 (5/1/2016)。 其原理如下:首先,DATE 函数会创建日期 5/1/2016。 DATE 函数使用单元格 E17 中的年份和单元格 E17 中的月份创建日期。 1 表示该月的第一天。 DATE 函数的结果是 5/1/2016。 然后,从单元格 E17 中的原始结束日期(即 5/6/2016)减去该日期。 5/6/2016 减 5/1/2016 得 5 天。
05x03 DATEVALUE 函数
DATEVALUE 函数将存储为文本的日期转换为 Excel 识别为日期的序列号。
语法
DATEVALUE(date_text)
参数 | 说明 |
---|---|
Date_text 必需 | 以 Excel 日期格式表示日期的文本,或对包含以 Excel 日期格式表示日期的文本的单元格的引用。 例如,“1/30/2008” 或 “30-Jan-2008” 均为引号内表示日期的文本字符串。 |
注意:
- 在 Microsoft Excel for Windows 中使用默认日期系统时, date_text参数必须代表1900年1月1日到9999年12月31日之间的日期。 DATEVALUE函数将返回 #VALUE! 如果date_text参数的值超出此范围,则为错误值。
- 如果省略参数 date_text 中的年份部分,则 DATEVALUE 函数会使用计算机内置时钟的当前年份。 参数 date_text 中的时间信息将被忽略。
例子:
Data | ||
---|---|---|
11 | ||
3 | ||
2011 | ||
Formula | Description | Result |
=DATEVALUE(“8/22/2011”) | Serial number of a date entered as text. | 40777 |
=DATEVALUE(“22-MAY-2011”) | Serial number of a date entered as text. | 40685 |
=DATEVALUE(“2011/02/23”) | Serial number of a date entered as text. | 40597 |
=DATEVALUE(“5-JUL”) | Serial number of a date entered as text, using the 1900 date system, and assuming the computer’s built-in clock returns 2011 as the current year. | 39634 |
=DATEVALUE(A2 & “/” & A3 & “/” & A4) | Serial number of a date created by combining the values in cells A2, A3, and A4. | 40850 |
05x04 DAY 函数
返回以序列数表示的某日期的天数。 天数是介于 1 到 31 之间的整数。
语法
DAY(serial_number)
参数 | 说明 |
---|---|
Serial_number 必需 | 你尝试查找的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。 |
例子:
Date | ||
---|---|---|
15-Apr-11 | ||
Formula | Description (Result) | Result |
=DAY(A2) | Day of the date in cell A2 (15) | 15 |
05x05 DAYS 函数
返回两个日期之间的天数
语法
详情见Excel函数大全-01最常用的十个函数
05x06 DAYS360 函数
以一年 360 天为基准计算两个日期间的天数。按照一年 360 天的算法(每个月以 30 天计,一年共计 12 个月),DAYS360 函数返回两个日期间相差的天数,这在一些会计计算中将会用到。 如果财会系统是基于一年 12 个月,每月 30 天,可使用此函数帮助计算支付款项。
语法
DAYS360(start_date,end_date,[method])
参数 | 说明 |
---|---|
Start_date、end_date 必需 | 用于计算期间天数的起止日期。 如果 start_date 在 end_date 之后,则 DAYS360 函数将返回一个负数。 |
method 可选 | 逻辑值,用于指定在计算中是采用美国方法 还是欧洲方法。 |
method | 定义 |
---|---|
FALSE 或省略 | 美国 (NASD) 方法。 如果起始日期是一个月的最后一天,则等于同月的 30 号。 如果终止日期是一个月的最后一天,并且起始日期早于 30 号,则终止日期等于下一个月的 1 号,否则,终止日期等于本月的 30 号。 |
TRUE | 欧洲方法。 如果起始日期和终止日期为某月的 31 号,则等于当月的 30 号。 |
例子:
Dates | ||
---|---|---|
1-Jan-11 | ||
30-Jan-11 | ||
1-Feb-11 | ||
31-Dec-11 | ||
Formula | Description | Result |
=DAYS360(A3,A4) | Number of days between 1/30/2011 and 2/1/2011, based on a 360-day year. | 1 |
=DAYS360(A2,A5) | Number of days between 1/1/2011 and 12/31/2011, based on a 360-day year. | 360 |
=DAYS360(A2,A4) | Number of days between 1/1/2011 and 2/1/2011, based on a 360-day year. | 30 |
05x07 EDATE 函数
返回表示某个日期的序列号,该日期与指定日期 (start_date) 相隔(之前或之后)指示的月份数。 使用函数 EDATE 可以计算与发行日处于一月中同一天的到期日的日期。
语法
EDATE(start_date, months)
参数 | 说明 |
---|---|
Start_date 必需 | 一个代表开始日期的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 |
Months 必需 | start_date 之前或之后的月份数。 months 为正值将生成未来日期;为负值将生成过去日期。 |
注意:
- 如果 start_date 不是有效日期,则 EDATE 返回 #VALUE! 。
- 如果 months 不是整数,将截尾取整。
例子:
Date | ||
---|---|---|
15-Jan-11 | ||
Formula | Description | Result |
=EDATE(A2,1) | The date, one month after the date above | 15-Feb-11 |
=EDATE(A2,-1) | The date, one month before the date above | 15-Dec-10 |
=EDATE(A2,2) | The date, two months after the date above | 15-Mar-11 |
05x08 EOMONTH 函数
返回某个月份最后一天的序列号,该月份与 start_date 相隔(之后或之后)指示的月份数。 使用函数 EOMONTH 可以计算正好在特定月份中最后一天到期的到期日。
语法
EOMONTH(start_date, months)
参数 | 说明 |
---|---|
Start_date 必需 | 一个代表开始日期的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 |
Months 必需 | start_date 之前或之后的月份数。 months 为正值将生成未来日期;为负值将生成过去日期。 |
注意:
- 如果 start_date 不是有效日期,则 EOMONTH 返回 #VALUE! 。
- 如果 start_date 加上月份会产生无效日期,则 EOMONTH 返回 #NUM! 。
- 如果 months 不是整数,将截尾取整。
例子:
Date | ||
---|---|---|
1-Jan-11 | ||
Formula | Description | Result |
=EOMONTH(A2,1) | Date of the last day of the month, one month after the date in A2. | 2/28/2011 |
=EOMONTH(A2,-3) | Date of the last day of the month, three months before the date in A2. | 10/31/2010 |
05x09 HOUR 函数
将序列号转换为小时,返回时间值的小时数。 小时数是介于 0 (12:00 A.M.) 到 23 (11:00 P.M.) 之间的整数。
语法
HOUR(serial_number)
参数 | 说明 |
---|---|
Serial_number 必需 | 时间值,其中包含要查找的小时数。 时间值有多种输入方式:带引号的文本字符串(例如 “6:45 PM”)、十进制数(例如 0.78125 表示 6:45 PM)或其他公式或函数的结果(例如 TIMEVALUE(“6:45 PM”))。 |
注意:
时间值为日期值的一部分,并用十进制数表示(例如 12:00 PM 可表示为 0.5,因为此时是一天的一半)
例子:
Time | ||
---|---|---|
0.75 | ||
7/18/2011 7:45 | ||
4/21/2012 | ||
Formula | Description | Result |
=HOUR(A2) | Returns 75% of 24 hours | 18 |
=HOUR(A3) | Returns the hour portion of the date/time value. | 7 |
=HOUR(A4) | A date with no time portion specified is considered 12:00 AM, or 0 hours. | 0 |
05x10 ISOWEEKNUM 函数
返回给定日期在全年中的 ISO 周数。
语法
ISOWEEKNUM(date)
参数 | 说明 |
---|---|
date 必需 | 日期是 Excel 用于日期和时间计算的日期-时间代码 |
注意:
- 如果日期参数为无效数值,则 ISOWEEKNUM 将返回错误值 #NUM! 。
- 如果日期参数为无效日期类型,则 ISOWEEKNUM 将返回错误值 #VALUE! 。
日期 | ||
---|---|---|
2012-3-9 | ||
公式 | 说明 | 结果 |
=ISOWEEKNUM(A2) | 2012-3-9 所在一年中的周数,一周开始于星期一(默认值)(10)。 | 10 |
05x11 MINUTE 函数
返回时间值中的分钟。 分钟是一个介于 0 到 59 之间的整数。
语法
MINUTE(serial_number)
参数 | 说明 |
---|---|
Serial_number 必需 | 一个时间值,其中包含要查找的分钟。 时间值有多种输入方式:带引号的文本字符串(例如 “6:45 PM”)、十进制数(例如 0.78125 表示 6:45 PM)或其他公式或函数的结果(例如 TIMEVALUE(“6:45 PM”)) |
例子:
时间 | ||
---|---|---|
下午 12:45:00 | ||
公式 | 说明 | 结果 |
=MINUTE(A2) | 返回 A2 中时间值的分钟部分。 | 45 |
05x12 MONTH 函数
返回日期(以序列数表示)中的月份。 月份是介于 1(一月)到 12(十二月)之间的整数。
语法
MONTH(serial_number)
参数 | 说明 |
---|---|
Serial_number 必需 | 您尝试查找的月份的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。 |
例子:
日期 | ||
---|---|---|
2011-4-15 | ||
公式 | 说明 | 结果 |
=MONTH(A2) | 单元格 A2 中日期的月份 | 4 |
05x13 NETWORKDAYS 函数
返回两个日期间的完整工作日的天数。返回参数 start_date 和 end_date 之间完整的工作日数值。 工作日不包括周末和专门指定的假期。 可以使用函数 NETWORKDAYS,根据某一特定时期内雇员的工作天数,计算其应计的报酬。
语法
NETWORKDAYS(start_date, end_date, [holidays])
参数 | 说明 |
---|---|
Start_date 必需 | 一个代表开始日期的日期 |
end_date 必需 | 一个代表终止日期的日期 |
Holidays 可选 | 不在工作日历中的一个或多个日期所构成的可选区域,例如:省/市/自治区和国家/地区的法定假日以及其他非法定假日。 该列表可以是包含日期的单元格区域,或是表示日期的序列号的数组常量。holidays 中的日期或序列值的顺序可以是任意的 |
注意:
- 若要使用参数来指明周末的日期和天数,从而计算两个日期间的全部工作日数,请使用 NETWORKDAYS.INTL 函数。
- 如果 start_date 晚于 end_date,则返回值将为负数,数量将是所有工作日的数量。
例子:
Date | Description | |
---|---|---|
10/1/2012 | Start date of project | |
3/1/2013 | End date of project | |
11/22/2012 | Holiday | |
12/4/2012 | Holiday | |
1/21/2013 | Holiday | |
Formula | Description | Result |
=NETWORKDAYS(A2,A3) | Number of workdays between the start (10/1/2012) and end date (3/1/2013). | 110 |
=NETWORKDAYS(A2,A3,A4) | Number of workdays between the start (10/1/2012) and end date (3/1/2013), with the 11/22/2012 holiday as a non-working day. | 109 |
=NETWORKDAYS(A2,A3,A4:A6) | Number of workdays between the start (10/1/2012) and end date (3/1/2013), with the three holidays as non-working days. | 107 |
05x14 NETWORKDAYS.INTL 函数
返回两个日期之间的所有工作日数,使用参数指示哪些天是周末,以及有多少天是周末。 周末和任何指定为假期的日期不被视为工作日。
语法
NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])
参数 | 说明 |
---|---|
Start_date 必需 | 一个代表开始日期的日期 |
end_date 必需 | 一个代表终止日期的日期 |
weekend 可选 | 表示介于 start_date 和 end_date 之间但又不包括在所有工作日数中的周末日。 Weekend 是一个用于指定周末日的数字或字符串 |
Holidays 可选 | 不在工作日历中的一个或多个日期所构成的可选区域,例如:省/市/自治区和国家/地区的法定假日以及其他非法定假日。 该列表可以是包含日期的单元格区域,或是表示日期的序列号的数组常量。holidays 中的日期或序列值的顺序可以是任意的 |
关于weekend参数的说明:
- 使用数字时
weekend数值 | 代表的周末日 |
---|---|
1 或省略 | 星期六、星期日 |
2 | 星期日、星期一 |
3 | 星期一、星期二 |
4 | 星期二、星期三 |
5 | 星期三、星期四 |
6 | 星期四、星期五 |
7 | 星期五、星期六 |
11 | 仅星期日 |
12 | 仅星期一 |
13 | 仅星期二 |
14 | 仅星期三 |
15 | 仅星期四 |
16 | 仅星期五 |
17 | 仅星期六 |
- 使用字符串时
周末字符串值的长度为七个字符,并且字符串中的每个字符表示一周中的一天(从星期一开始)。 1 表示非工作日,0 表示工作日。 在字符串中仅允许使用字符 1 和 0。 使用 1111111 将始终返回 0。
例如,0000011 结果为星期六和星期日是周末。
注意:
- 如果 start_date 晚于 end_date,则返回值将为负数,数量将是所有工作日的数量。
例子:
公式 | 说明 | |
---|---|---|
=NETWORKDAYS.INTL(DATE(2006,1,1),DATE(2006,1,31)) | 结果为 22 个将来工作日。 从两个日期之间的总天数 31 中减去 9 个非工作周末(5 个星期六和 4 个星期日)。 默认情况下,星期六和星期日被视为非工作日。 | 22 |
=NETWORKDAYS.INTL(DATE(2006,2,28),DATE(2006,1,31)) | 结果为 -21,即 21 个过去的工作日。 | -21 |
=NETWORKDAYS.INTL(DATE(2006,1,1),DATE(2006,2,1),7,{“2006/1/2”,“2006/1/16”}) | 从 2006 年 1 月 1 日和 2006 年 2 月 1 日之间的 32 天中减去 10 个非工作日(4 个星期五、4 个星期六和 2 个假日),结果为 22 个将来工作日。 使用 7 作为周末参数(星期五和星期六)。 在该时间段中有两个假日。 | 22 |
=NETWORKDAYS.INTL(DATE(2006,1,1),DATE(2006,2,1),“0010001”,{“2006/1/2”,“2006/1/16”}) | 结果为 22 个将来工作日。 与上述示例中的时间段相同,但是将星期六和星期三视为周末。 | 20 |
05x15 NOW 函数
返回当前日期和时间的序列号。 如果在输入该函数前,单元格格式为“常规”,Excel 会更改单元格格式,使其与区域设置的日期和时间格式匹配。 可以在功能区“开始”选项卡上的“数字”组中使用命令来更改日期和时间格式。
当需要在工作表上显示当前日期和时间或者需要根据当前日期和时间计算一个值并在每次打开工作表时更新该值时,使用 NOW 函数很有用。
语法
Now()
NOW 函数语法没有参数。
注意:
- NOW 函数的结果仅在计算工作表或运行含有该函数的宏时才改变。 它并不会持续更新。
- 如果 NOW 函数并未按预期更新单元格值,则可能需要更改控制工作簿或工作表何时重新计算的设置。 这些设置可以在 Excel 桌面应用程序的“控制面板”中更改。
例子:
公式 | 说明 | 结果 |
---|---|---|
=NOW() | 返回当前日期和时间。 | 2011-11-6 19:30 |
=NOW()-0.5 | 返回 12 小时前的日期和时间(-0.5 天前)。 | 2011-11-6 7:30 |
=NOW()+7 | 返回 7 天后的日期和时间。 | 2011-11-13 19:30 |
=NOW()-2.25 | 返回 2 天 6 小时前的日期和时间(-2.25 天前)。 | 2011-11-4 13:30 |
05x16 SECOND 函数
返回时间值的秒数。 秒数是 0(零)到 59 范围内的整数。
语法
SECOND(serial_number)
参数 | 说明 |
---|---|
Serial_number 必需 | 一个时间值,其中包含要查找的秒数。 时间值有多种输入方式:带引号的文本字符串(例如 “6:45 PM”)、十进制数(例如 0.78125 表示 6:45 PM)或其他公式或函数的结果(例如 TIMEVALUE(“6:45 PM”)) |
例子:
数据 | ||
---|---|---|
时间 | ||
下午 4:48:18 | ||
下午 4:48 | ||
公式 | 说明 | 结 果 |
=SECOND(A3) | 第一个时间的秒数 (18) | 18 |
=SECOND(A4) | 第二个时间的秒数 (0) | 0 |
05x17 TIME 函数
返回特定时间的十进制数字。 如果在输入该函数之前单元格格式为“常规”,则结果将使用日期格式。
由 TIME 返回的十进制数字是一个范围在 0(零)到 0.99988426 之间的值,表示 0:00:00 (12:00:00 AM) 到 23:59:59 (11:59:59 P.M.) 之间的时间。
语法
TIME(hour, minute, second)
参数 | 说明 |
---|---|
hour 必需 | 0(零)到 32767 之间的数字,代表小时。 任何大于 23 的值都会除以 24,余数将作为小时值。 例如,TIME(27,0,0) = TIME(3,0,0) = .125 或 3:00 AM |
minute 必需 | 0 到 32767 之间的数字,代表分钟。 任何大于 59 的值将转换为小时和分钟。 例如,TIME(0,750,0) = TIME(12,30,0) = .520833 或 12:30 PM |
second 必需 | 0 到 32767 之间的数字,代表秒。 任何大于 59 的值将转换为小时、分钟和秒。 例如,TIME(0,0,2000) = TIME(0,33,22) = .023148 或 12:33:20 AM |
例子:
时 | 分 | 秒 |
---|---|---|
12 | 0 | 1 |
16 | 48 | 条 |
公式 | 说明 | 结果 |
=TIME(A2,B2,C2) | 一天的小数部分(第 2 行中指定的时间)(12 小时、0 分钟、0 秒钟) | 0.5 |
=TIME(A3,B3,C3) | 一天的小数部分(第 3 行中指定的时间)(16 小时、48 分钟、10 秒钟) | 0.7001157 |
05x18 TIMEVALUE 函数
返回由文本字符串表示的时间的十进制数字。 十进制数字是一个范围在 0(零)到 0.99988426 之间的值,表示 0:00:00 (12:00:00 AM) 到 23:59:59 (11:59:59 P.M.) 之间的时间。
语法
TIMEVALUE(time_text)
参数 | 说明 |
---|---|
time_text 必需 | 一个文本字符串,代表以任一 Microsoft Excel 时间格式表示的时间(例如,代表时间的具有引号的文本字符串 “6:45 PM” 和 “18:45”) |
注意:
- time_text 中的日期信息会被忽略
例子:
公式 | 说明 | 结果 |
---|---|---|
=TIMEVALUE(“2:24 AM”) | 一天的小数部分(仅指定时间)。 | 0.10 |
=TIMEVALUE(“22-Aug-2011 6:35 AM”") | 一天的小数部分(指定日期和时间)。 | 0.2743 |
05x19 TODAY 函数
返回当前日期的序列号。 例如,如果您知道某人出生于 1963 年,您可使用以下公式计算对方到其今年生日为止的年龄:= YEAR( TODAY())-1963
语法
TODAY()
TODAY 函数语法没有参数。
例子:
公式 | 说明 | 结果 |
---|---|---|
=TODAY() | 返回当前日期。 | 2011-12-1 |
=TODAY()+5 | 返回当前日期加 5 天。 例如,如果当前日期为 1/1/2012,此公式会返回 1/6/2012。 | 2011-12-6 |
=DATEVALUE(“2030-1-1”)-TODAY() | 返回当前日期和 1/1/2030 之间的天数。 请注意,单元格 A4 必须为“常规”或“数值”格式才能正确显示结果。 | 1918-1-31 |
=DAY(TODAY()) | 返回一月中的当前日期 (1 - 31)。 | 1 |
=MONTH(TODAY()) | 返回一年中的当前月份 (1 - 12)。 例如,如果当前月份为五月,此公式会返回 5。 | 1.2 |
05x20 WEEKDAY 函数
返回对应于某个日期是一周中的第几天。 默认情况下,天数是 1(星期日)到 7(星期六)范围内的整数。
语法
WEEKDAY(serial_number,[return_type])
参数 | 说明 |
---|---|
serial_number 必需 | 一个序列号,代表尝试查找的那一天的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。 |
return_type 可选 | 用于确定返回值类型的数字 |
return_type 参数对应关系表:
Return_type | 返回的数字 |
---|---|
1 或省略 | 数字 1(星期日)到 7(星期六)。 同 Microsoft Excel 早期版本。 |
2 | 数字 1(星期一)到 7(星期日)。 |
3 | 数字 0(星期一)到 6(星期日)。 |
11 | 数字 1(星期一)到 7(星期日)。 |
12 | 数字 1(星期二)到数字 7(星期一)。 |
13 | 数字 1(星期三)到数字 7(星期二)。 |
14 | 数字 1(星期四)到数字 7(星期三)。 |
15 | 数字 1(星期五)到数字 7(星期四)。 |
16 | 数字 1(星期六)到数字 7(星期五)。 |
17 | 数字 1(星期日)到 7(星期六)。 |
例子:
数据 | ||
---|---|---|
2008-2-14 | ||
公式 | 描述(结果) | 结果 |
=WEEKDAY(A2) | 使用数字 1(星期日)到 7(星期六)表示的一周中的第几天 (5) | 5 |
=WEEKDAY(A2, 2) | 使用数字 1(星期一)到 7(星期日)表示的一周中的第几天 (4) | 4 |
=WEEKDAY(A2, 3) | 使用数字 0(星期一)到 6(星期日)表示的一周中的第几天 (3) | 3 |
05x21 WEEKNUM 函数
返回特定日期的周数。 例如,包含 1 月 1 日的周为该年的第 1 周,其编号为第 1 周。此函数可采用两种机制:
- 机制 1 包含 1 月 1 日的周为该年的第 1 周,其编号为第 1 周。
- 机制 2 包含该年的第一个星期四的周为该年的第 1 周,其编号为第 1 周。 此机制是 ISO 8601 指定的方法,通常称作欧洲周编号机制。
语法
WEEKNUM(serial_number,[return_type])
参数 | 说明 |
---|---|
serial_number 必需 | 代表一周中的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。 |
Return_type 可选 | 一数字,确定星期从哪一天开始。 默认值为 1 |
return_type 参数对应关系表:
Return_type | 返回的数字 | 机制 |
---|---|---|
1 或省略 | 星期日 | 1 |
2 | 星期一 | 1 |
11 | 星期一 | 1 |
12 | 星期二 | 1 |
13 | 星期三 | 1 |
14 | 星期四 | 1 |
15 | 星期五 | 1 |
16 | 星期六 | 1 |
17 | 星期日 | 1 |
21 | 星期一 | 2 |
例子:
数据 | ||
---|---|---|
2012-3-9 | ||
公式 | 说明 | 结果 |
=WEEKNUM(A2) | 2012-3-9 所在一年中的周数,一周开始于星期日(默认值)。 | 10 |
=WEEKNUM(A2,2) | 2012-3-9 所在一年中的周数,一周开始于星期一(第二个参数 2)。 | 11 |
05x22 WORKDAY 函数
返回在某日期(起始日期)之前或之后、与该日期相隔指定工作日的某一日期的日期值。 工作日不包括周末和专门指定的假日。 在计算发票到期日、预期交货时间或工作天数时,可以使用函数 WORKDAY 来扣除周末或假日。
若要通过使用参数来指示哪些天是周末以及有多少天是周末来计算指定工作日天数之前或之后日期的序列号,请使用 WORKDAY.INTL 函数。
语法
WORKDAY(start_date, days, [holidays])
参数 | 说明 |
---|---|
start_date 必需 | 一个代表开始日期的日期 |
days 必需 | start_date 之前或之后不含周末及节假日的天数。 Days 为正值将生成未来日期;为负值生成过去日期 |
holidays 可选 | 一个可选列表,其中包含需要从工作日历中排除的一个或多个日期,例如各种省/市/自治区和国家/地区的法定假日及非法定假日。 该列表可以是包含日期的单元格区域,也可以是由代表日期的序列号所构成的数组常量 |
注意:
- 如果 days 不是整数,将截尾取整。
例子:
数据 | ||
---|---|---|
2008-10-1 | 开始日期 | |
151 | 完成所需天数 | |
11/26/2008 | 假日 | |
12/4/2008 | 假日 | |
1/21/2009 | 假日 | |
公式 | 描述(结果) | 结果 |
=WORKDAY(A2,A3) | 从起始日期开始 151 个工作日的日期 (2009-4-30) | 2009-4-30 |
=WORKDAY(A2,A3,A4:A6) | 除去假日,从起始日期开始 151 个工作日的日期 (2009-5-5) | 2009-5-5 |
05x23 WORKDAY.INTL 函数
返回指定的若干个工作日之前或之后的日期的序列号(使用自定义周末参数)。 周末参数指明周末有几天以及是哪几天。 周末和任何指定为假期的日期不被视为工作日。
语法
WORKDAY.INTL(start_date, days, [weekend], [holidays])
参数 | 说明 |
---|---|
start_date 必需 | 开始日期(将被截尾取整) |
days 必需 | Start_date 之前或之后的工作日的天数。 正值表示未来日期;负值表示过去日期;零值表示开始日期。 Day-offset 将被截尾取整。 |
weekend 可选 | 指示一周中属于周末的日子和不作为工作日的日子。 Weekend 是一个用于指定周末日的周末数字或字符串 |
holidays 可选 | 一组可选的日期,表示要从工作日日历中排除的一个或多个日期。 holidays 应是一个包含相关日期的单元格区域,或者是一个由表示这些日期的序列值构成的数组常量。 holidays 中的日期或序列值的顺序可以是任意的 |
关于weekend参数的说明:
- 使用数字时
weekend数值 | 代表的周末日 |
---|---|
1 或省略 | 星期六、星期日 |
2 | 星期日、星期一 |
3 | 星期一、星期二 |
4 | 星期二、星期三 |
5 | 星期三、星期四 |
6 | 星期四、星期五 |
7 | 星期五、星期六 |
11 | 仅星期日 |
12 | 仅星期一 |
13 | 仅星期二 |
14 | 仅星期三 |
15 | 仅星期四 |
16 | 仅星期五 |
17 | 仅星期六 |
- 使用字符串时
周末字符串值的长度为七个字符,并且字符串中的每个字符表示一周中的一天(从星期一开始)。 1 表示非工作日,0 表示工作日。 在字符串中仅允许使用字符 1 和 0。 1111111 是无效字符串。
例如,0000011 结果为星期六和星期日是周末。
例子:
公式 | 说明 | 实时结果 |
---|---|---|
=WORKDAY.INTL(DATE(2012,1,1),30,0) | 对周末参数使用0将导致 #NUM! 错误。 | #NUM! |
=WORKDAY.INTL(DATE(2012,1,1),90,11) | 查找据 2010-1-1 90 个工作日的日期,仅将星期天作为周末进行计数(周末参数为 11)。 | 41013 |
=TEXT(WORKDAY.INTL(DATE(2012,1,1),30,17),“m/dd/yyyy”) | 使用 TEXT 函数将得到的序列数 (40944) 设置为 “m/dd/yyyy” 格式。 查找据 2010-1-1 30 个工作日的日期,仅将星期六作为周末进行计数(周末参数为 17)。 | 2012-2-05 |
05x24 YEAR 函数
返回对应于某个日期的年份。 Year 作为 1900 - 9999 之间的整数返回。
语法
YEAR(serial_number)
参数 | 说明 |
---|---|
Serial_number 必需 | 要查找的年份的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题 |
例子:
数据 | ||
---|---|---|
日期 | ||
2008-7-5 | ||
2010-7-5 | ||
公式 | 描述(结果) | 结果 |
=YEAR(A3) | 单元格 A3 中日期的年份 (2008) | 2008 |
=YEAR(A4) | 单元格 A4 中日期的年份 (2010) | 2010 |
05x25 YEARFRAC 函数
YEARFRAC 可计算两个日期(start_date 和 end_date)之间的天数(取整天数)占一年的比例。 例如,可使用 YEARFRAC 确定某一特定条件下全年效益或债务的比例,可用于计算全年时间进度。
语法
YEARFRAC(start_date, end_date, [basis])
参数 | 说明 |
---|---|
Start_date 必需 | 一个代表开始日期的日期 |
end_date 必需 | 一个代表终止日期的日期 |
basis 必需 | 要使用的日计数基准类型 |
关于basis参数的说明:
Basis | 日计数基准 |
---|---|
0 或省略 | US (NASD) 30/360 |
1 | 实际/实际 |
2 | 实际/360 |
3 | 实际/365 |
4 | 欧洲 30/360 |
注意:
- 如果使用 US (NASD) 30/360 基准,且 start_date 是二月的最后一天,则 YEARFRAC 函数可能会返回错误的结果。
- 所有参数都将被截尾取整。
例子:
数据 | 说明 | |
---|---|---|
1/1/2012 | 开始日期 | |
7/30/2012 | 终止日期 | |
公式 | 说明 | 结果 |
=YEARFRAC(A2,A3) | 2012-1-1 和 2012-7-30 之间的天数占全年的百分比(缺少基准参数)。 | 0.58055556 |
=YEARFRAC(A2,A3,1) | 相同日期之间的天数占全年的百分比(使用“实际天数/实际天数”基准参数)。 由于 2012 为闰年,因此它以 366 为日计数基准。 | 0.57650273 |
=YEARFRAC(A2,A3,3) | 相同日期之间的天数占全年的百分比(使用实际天数/365 基准参数)。 以 365 为日计数基准。 | 0.57808219 |
更多推荐
Excel函数大全-05日期和时间函数
发布评论