Excel如何从日期设置中导出星期

Excel 还可以从日期数据中得到当前日期为星期几。掌握这个方法后,在制作日历和行程表时会非常有效率。

Excel 中有个函数叫作 WEEKDAY 函数,其主要用途为返回某日期的星期数。但事实上,还存在一种比它更简单的函数——TEXT 函数。

例如,想要在单元格 B2中显示单元格 A2中的日期为星期几,我们可以在 B2中输入以下公式:

=TEXT(A2,”aaa”)

在单元格 B2中输入=TEXT(A2,”aaa”)

这时候,按照第二参数的指定方法,星期几的表示形式则变为:

  • “aaa”➛日
  • “aaaa”➛星期日
  • “ddd”➛Sun
  • “dddd”➛Sunday

Excel自动计算年龄

Excel 还有种函数,输入出生日期后,可以自动计算出年龄,它叫作 DATEDIF 函数。每天花几小时查看出生日期,如果发现当前日期是生日的话再手动将年龄数据加1……我见过不少会“永无止尽”重复如此操作的案例。在此提醒各位,只要掌握这个函数,就可以完全避免花费大量时间进行如此麻烦的操作。

DATEDIF 函数的结构如下:

【格式】

=DATEDIF(起始日期,结束日期,单位)

通过指定起始日期与结束日期,得出间隔的数据。

第三参数则根据想要如何表示间隔数据的单位,进行指定。

  • “Y”➛年
  • “M”➛月
  • “D”➛日

计算年龄数据时需要选择“年”来作为单位,因此需要按照以下方式输入(假定 B2为出生日期)。顺带一提,这个函数无法使用辅助输入功能,必须手动输入“=DATEDIF(”。

=DATEDIF(B2,TODAY(),”Y”)

在单元格 C2中输入=DATEDIF(B2,TODAY(),”Y”)

想要通过这种方法自动计算出年龄,将出生日期指定为起始日期后,通常会输入能够导出当前日期的 TODAY 函数作为结束日期。接着,从出生日期到今天为止所间隔的时间以年作单位来表示的话,需要在第三参数单位中输入“Y”。

想计算出准确的结果,需要准确无误地输入公历年的出生日期。如果不了解日期数据的基础,只输入月份和日期的话,那么年份则会变成当前年份,这样就无法计算出正确的年龄。所以,请一定记住“所有日期都要从公历年开始输入”。

用“×年×个月×日”表示年龄和间隔期间的数据

在实际的工作中经常会遇到“用“×年×个月×日”表示年龄和间隔期间”这样的事。想要完成此项操作,需要牢记如何导出除去年份后的从起始日期到结束日期的月份数(即×个月的部分),或者除去年份和月份的数值后的起始日期到结束日期的天数(即×日的部分)。

若想计算出“×个月”部分,将第三参数的单位代码指定为“YM”。

在单元格 D2中输入=DATEDIF(B2,TODAY(),”YM”),得到月份的数值

若想算出“×日”部分,将第三参数的单位代码指定为”MD”。

在单元格 E2中输入=DATEDIF(B2,TODAY(),”MD”),得到天数

这样,我们就能在不同的单元格中分别得出对应的数值。

顺带一提,想要在一个单元格里得出“×年×个月”的结果,可用“&”连结字符串等混合字段,从而实现组合输入数值与函数公式。

Excel如何导出除周末和节假日外的营业天数

想要计算除双休日和节假日外距某个截止日期的营业天数,可以使用 NETWORKDAYS 函数。在一般的工作中,这种计算营业天数的案例十分常见。

由于 Excel 本身并不配备节假日的相关数据,因此我们在前期需要另外准备节假日一览表。在此制作一个以“节假日表”命名的工作表,然后照着下表制作一张节假日一览表。可以在网络上搜索节假日数据表。

节假日一览表

在单元格 A2中输入交货日期,想要计算出除去周末和节假日外距离该交货日期的工作日还剩几天时,只要用“当前日期”减掉“除周末和节假日外的截止日期”即可,公式如下:

=NETWORKDAYS(TODAY(),A2,节假日表!A2:A195)

此函数的参数表示意义如下:

  • 第一参数:日期计算的开始日
  • 第二参数:日期计算的结束日
  • 第三参数:需要从日期计算过程中去掉含有节假日的范围

这种方式可以得出“距离今天为止还有多少工作日”的结果,所以开始日期中要填入 TODAY 函数。

第三参数用于指定节假日,在这一例子中实际指定为“节假日表”中含有节假日日期数据的单元格范围(即 A2:A195)。如果要把公司自己规定的休息天数考虑进去的话,可根据需要自行调整第三参数。

Exce随时查看距截止日期还有几天

在利用 Excel 管理客户档案时,最方便的莫过于能自动显示距离每位客户的生日、合同的更新日期还有几天这样的数据。如果想要在含有更新日期数据表格中的“剩余天数”一栏,实时计算出“距离更新日期还有几天……”,可以用“更新日期减去当前的日期”。

例如,按以下方式输入,就能导出截止到单元格 B2中的日期的剩余天数。

=B2-TODAY()

在单元格 C2中输入=B2-TODAY()

B2中的日期数据所对应序列值,与 TODAY 函数导出的当前日期的序列值,二者相减就会得出上述结果。“利用序列值来处理日期的相关计算”,希望诸位读者朋友能够从这个事例中掌握这个诀窍。

如何从日期数据中导出年、月、日

那么相反地,如果想从日期数据中提取出年、月、日的数据,需要用到 YEAR 函数、MONTH 函数、DAY 函数。例如,从单元格 A1中的日期数据分出年、月、日数据,可利用相应的函数按以下方式导出。

  • =YEAR(A1)➛A1的公历年
  • =MONTH(A1)➛A1的月份
  • =DAY(A1)➛A1的日期

想要将年、月、日分别输入不同的单元格时

我在前文中曾经提过“在输入日期时,请务必用“/”将年、月、日隔开。”但如果实际上这样操作非常麻烦。因此,需要“将年、月、日分别输入到不同的单元格,用作日期字段”,这样能够提高操作效率。但是想要分别输入不同的单元格时,需要将所在单元格的格式设置为非日期数据(序列值),否则 Excel 就无法自动将之认定为日期形式来处理。也就是说无法进行天数、时间段和年龄等计算,也不能将这日期自动转换成星期。

这时,要用到可以把年、月、日3个数值变为日期数据,即序列值的函数,那就是 DATE 函数。在导出显示日期形式的单元格中输入以下公式。首先,输入“=DATE(”,然后按住Ctrl 键,同时按顺序点击单元格 A2、B2、C2,这样能够快速完成操作。

=DATE(A2,B2,C2)

在单元格 D2中输入=DATE(A2,B2,C2)

DATE 函数是按照顺序在第一参数到第三参数中输入年、月、日的数字,并以此制作日期数据(即序列值)的函数。想要计算不是正确日期格式的日期数据时,应该先使用 DATE 函数将其转换为日期数据。

如果需要处理的日期数据为2014年1月1日,有时会用“20140101”的8位数值形式保存。如果想把它变为正确的日期数据,还是需要用到 DATE 函数来处理。这时,我们就用到后面接下来会介绍的 LEFT 函数、MID 函数、RIGHT 函数,分别抽出相应的年、月、日的数据,再逐个组入 DATE 函数。

【例】

=DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))

关于这个技巧,我会在下一章的关于字符串操作中详细讲解。

经常更新工作表的日期(Excel自动当前日期)

“这份订单的制作日期怎么还是上一周啊!”

像订单这样的 Excel 表格,只是改变日期和内容来重复使用同一张工作表,经常会发生这种忘记更改相关项目的失误。为避免这样的情况发生,我们可以使用 TODAY 函数,自动将工作表的日期更新为当前日期。只要输入这个函数,之后就没有必要手动更新日期了。

=TODAY()

输入=TODAY()后显示的结果

=TODAY()后显示的结果

TODAY 函数在对截止交货期的天数、年龄、入社时间等需要自动计算的任务可以发挥很大的作用。如果要用 Excel 处理日期数据,熟练使用 TODAY 函数是我们最先需要掌握的技巧。

但是,在使用 TODAY 函数修改订单等工作表中的日期栏时必须注意一点,那就是 TODAY 函数会实时更新当天的日期。直接保存 Excel 制作的订单后,工作表中的日期会自动调整为当前日期。因此,需要保留原始数据时,请把文件转存成 PDF 形式。

Excel避免数据变为日期形式

即便你不想输入日期,但只要输入“1-11”、“1/21”这类数据,Excel 会自动认定该数据为日期数据,并将其转换成“1月11日”的形式。如果不需要自动转换,可选择下面的方法解决。

  • 将单元格的格式设置中的表示形式改为“文本”
  • 在开头处输入单引号(’)

顺带一提,想要显示分数形式的话,可通过以下方法输入。

  • 将表示形式改为“分数”
  • 像“0 1/2”这样的格式,在开头处输入0和半角模式下的空格。

Excel处理时间数据:如何输入正确的时间

如果要详细解说应该如何处理时间数据,反而会阻碍大家的理解……真要详细地讲,那么这样的解说将会变成读起来都会觉得很厌烦的长篇大论。所以,在这里我只给大家介绍解决对策。

首先,我们来了解一下 TIME 函数。它是处理时间数据的函数,能够指定时、分、秒。比如要制作“9:30:00”这样的时间数据,我们可以输入下面的公式:

=TIME(9,30,0)

反过来,单元格 A1中含有时间数据(如“9:00”)时,想要从此单元格中分析出小时、分、秒的数值的话,就要用到 HOUR 函数、MINUTE 函数和 SECOND 函数。分别可通过以下公式导出相应的数值。

  • =HOUR(A1) : 导出单元格 A1中时间数据的小时数
  • =MINUTE(A1) : 导出单元格 A1中时间数据的分钟数
  • =SECOND(A1) : 导出单元格 A1中时间数据的秒数

在处理任何时间数据时都可以用下面的函数公式,这样能够导出绝对没有误差的时间数据(假定单元格 A1中含有时间数据)。

=HOUR(A1)*60+MINUTE(A1)

这样一来,如果单元格 A1中是“8:25”则会自动返回“505”这个数值。这个数字表示的是从“上午0:00”到“上午8:25”经过的分钟数,正好是505分钟。像这样,将时间数据转换为不含小数点的整数,就能在计算时避免出现误差。

以上一个出现误差的案例,可通过以下方式解决。

出现误差的时候,中途增加处理步骤

出现误差的时候,中途增加处理步骤

在 E 列与 F 列中,输入前文中提到的相应函数,将开始时间与结束时间转换为分别距离上午0:00的分钟数。

将 E 列到 G 列的单元格的格式改为“数值”。将这些转换后的数值相减,就会得到 G 列上的经过的分钟数,由于结果是不含小数点的整数,也不会产生误差。在单元格 G4中输入的是这两项经过的分钟数是否为相同值的判定逻辑式(=G3=G2)。结果为 TRUE,就是说判定为经过的时间相同。

Excel处理时间数据:容易出现误差的地方

计算机在处理小数点以后的数值的计算时肯定会出错,我们一定要牢记这一点。Excel 在计算含有小数的数值时,无法得出正确答案。计算机的数据是以二进制表示的,如果公式中存在无法识别的小数数值,在计算时就会出现误差。在用 Excel 计算序列值为小数数值的时间数据时,也同样会发生这一问题。

例如,将 B 列的开始时间与 C 列的结束时间做减法,在 D 列中显示经过的时间。A 和 B 的经过时间在目标单元格中皆显示为1:01,但比较这两个单元格,却判断为不同值(D4单元格)。

明明经过了相同的时间,却被判定为不同值

明明经过了相同的时间,却被判定为不同值

之所以会发生这种情况,是由于各时间数据中实际上包含了以秒为单位的数值,如果不知道一些简便的处理方法,在进行相关处理时就会变得非常麻烦。