Excel 函数 专题三
本节课,我们主要来讲解第二个类别:日期和时间函数,包括:DATEDIF 函数,DATEVALUE 函数,DAY 函数,EDATE 函数,EOMONTH 函数,HOUR 函数,MINUTE 函数,MONTH 函数,NETWORKDAYS 函数,NOW 函数,SECOND 函数,TIME 函数,TIMEVALUE 函数,TODAY 函数,WEEKDAY 函数,WEEKNUM 函数,WORKDAY 函数,YEAR 函数,YEARFRAC 函数。
1.DATEDIF 函数
计算两个日期之间相隔的天数、月数或年数。Excel 提供了 DATEDIF 函数,以便支持来自 Lotus 1-2-3 的旧版工作簿。 在某些应用场景下,DATEDIF 函数计算结果可能并不正确。
语法:DATEDIF(start_date,end_date,unit)
start_date 必需:表示给定时间段的第一个或开始日期的日期。 日期值有多种输入方式:带引号的文本字符串(例如 "2001/1/30")、序列号(例如 36921,在商用 1900 日期系统时表示 2001 年 1 月 30 日)或其他公式或函数的结果(例如 DATEVALUE("2001/1/30"))。
end_date 必需:用于表示时间段的最后一个(即结束)日期的日期。
Unit 要返回的信息类型,其中:“Y” :一段时期内的整年数。“M”:一段时期内的整月数。“D”:一段时期内的天数。“MD”:start_date 与 end_date 之间天数之差。 忽略日期中的月份和年份。“YM”:start_date 与 end_date 之间月份之差。 忽略日期中的天和年份。“YD”:start_date 与 end_date 的日期部分之差。 忽略日期中的年份。
“MD”参数可能导致出现负数、零或不准确的结果。 若要计算上一完整月份后余下的天数,可使用如下方法:
此公式从单元格 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 天。
2.DATEVALUE 函数
DATEVALUE 函数将存储为文本的日期转换为 Excel 识别为日期的序列号。 例如,公式=DATEVALUE("1/1/2008") 返回 39448,即日期 2008-1-1 的序列号。 即使如此,计算机的系统日期设置可能会导致 DATEVALUE 函数的结果会不同。如果工作表包含采用文本格式的日期并且要对这些日期进行筛选、排序、设置日期格式或执行日期计算,则 DATEVALUE 函数将十分有用。要将序列号显示为日期,必须对单元格应用日期格式。
语法: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 参数的值超出此范围,则为 error 值。如果省略参数 date_text 中的年份部分,则 DATEVALUE 函数会使用计算机内置时钟的当前年份。 参数 date_text 中的时间信息将被忽略。
大部分函数都会自动将日期值转换为序列数。
3.DAY 函数
返回以序列数表示的某日期的天数。 天数是介于 1 到 31 之间的整数。
语法:DAY(serial_number)
Serial_number 必需。 要查找的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。
无论提供的日期值的显示格式如何,YEAR、MONTH 和 DAY 函数返回的值都是公历值。 例如,如果提供的日期的显示格式是回历,则 YEAR、MONTH 和 DAY 函数返回的值将是与对应的公历日期相关联的值。
4.EDATE 函数
返回表示某个日期的序列号,该日期与指定日期 (start_date) 相隔(之前或之后)指示的月份数。 使用函数 EDATE 可以计算与发行日处于一月中同一天的到期日的日期。
语法:EDATE(start_date, months)
Start_date 必需。 一个代表开始日期的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。
Months 必需。 start_date 之前或之后的月份数。 months 为正值将生成未来日期;为负值将生成过去日期。
如果start_date不是有效的日期,EDATE 将返回 #VALUE! 。如果 months 不是整数,将截尾取整。
5.EOMONTH 函数
返回某个月份最后一天的序列号,该月份与 start_date 相隔(之后或之后)指示的月份数。 使用函数 EOMONTH 可以计算正好在特定月份中最后一天到期的到期日。
语法:EOMONTH(start_date, months)
Start_date 必需。 表示开始日期的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。
Months 必需。 start_date 之前或之后的月份数。 months 为正值将生成未来日期;为负值将生成过去日期。
如果 months 不是整数,将截尾取整。如果start_date不是有效的日期,EOMONTH 将返回 #NUM! 。如果start_date加月份生成无效日期,EOMONTH 将返回 #NUM! 。
6.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,因为此时是一天的一半)。
7.MINUTE 函数
返回时间值中的分钟。 分钟是一个介于 0 到 59 之间的整数。
语法:MINUTE(serial_number)
Serial_number 必需。 一个时间值,其中包含要查找的分钟。 时间值有多种输入方式:带引号的文本字符串(例如 "6:45 PM")、十进制数(例如 0.78125 表示 6:45 PM)或其他公式或函数的结果(例如 TIMEVALUE("6:45 PM"))。
8.MONTH 函数
返回日期(以序列数表示)中的月份。 月份是介于 1(一月)到 12(十二月)之间的整数。
语法:MONTH(serial_number)
Serial_number 必需。 要查找的月份的日期。 应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2008,5,23) 输入 2008 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。
9.NETWORKDAYS 函数
返回参数 start_date 和 end_date 之间完整的工作日数值。 工作日不包括周末和专门指定的假期。 可以使用函数 NETWORKDAYS,根据某一特定时期内雇员的工作天数,计算其应计的报酬。
语法:NETWORKDAYS(start_date, end_date, [holidays])
Start_date 必需。 一个代表开始日期的日期。
End_date 必需。 一个代表终止日期的日期。
Holidays 可选。 不在工作日历中的一个或多个日期所构成的可选区域,例如:省/市/自治区和国家/地区的法定假日以及其他非法定假日。 该列表可以是包含日期的单元格区域,或是表示日期的序列号的数组常量。
应使用 DATE 函数输入日期,或者将日期作为其他公式或函数的结果输入。 例如,使用函数 DATE(2012,5,23) 输入 2012 年 5 月 23 日。 如果日期以文本形式输入,则会出现问题。如果任何参数不是有效的日期,NETWORKDAYS 将返回 #VALUE! 。
10.NOW 函数
返回当前日期和时间的序列号。 如果在输入该函数前,单元格格式为“常规”,Excel 会更改单元格格式,使其与区域设置的日期和时间格式匹配。 可以在功能区“开始”选项卡上的“数字”组中使用命令来更改日期和时间格式。当需要在工作表上显示当前日期和时间或者需要根据当前日期和时间计算一个值并在每次打开工作表时更新该值时,使用 NOW 函数很有用。
如果 NOW 函数并未按预期更新单元格值,则可能需要更改控制工作簿或工作表何时重新计算的设置。 这些设置可以在 Excel 桌面应用程序的“控制面板”中更改。
语法:Now()
NOW 函数语法没有参数。NOW 函数的结果仅在计算工作表或运行含有该函数的宏时才改变。 它并不会持续更新。
共有 0 条评论