哈啰,大家好
在今天的影片我打算聊一聊
如何针对 Excel 中的日期和时间
进行格式设定和运算
另外我会介绍两个关于日期的函数
来看看如何利用它们
来计算薪资表中常见的「年资」和「工时」
日期和时间在 Excel 中
是一种较为特别的资料类型
它不但有自己的格式设定
也有专属的函数类别
在输入日期时
我们必须依照 Excel 所制定的格式
也就是利用「斜线」隔开年、月、日
或是利用「横线」来做为分隔符号
至于时间的输入
则可以依照我们平常书写的习惯
使用冒号来隔开「小时」和「分钟」
在 Excel 中可以接受 24 时制的输入方式
像是将下午五点输入为 17:00
也可以使用一般的 12 时制
在时间的后面标注 AM 或 PM
或是单输入 A 或 P 也可以喔
此时你会发现即使我们标注了 AM 或 PM
但是时间输入完毕后
它依旧显示为 24 时制的型态
而要修正这个格式问题
我们可以将储存格框选之后
开启数值格式的对话框
切换到「自订」类别
在此 h 代表「小时」
而 m 代表「分钟」
如果要将小时以 12 时制的方式显示
我们可以在时间代码的后面
加上 AM/PM
或着,我们也可以使用中文的
「上午/下午」也可以喔
日期格式的资料同样也有一些格式代码
可供我们灵活运用
譬如四个 y 代表「西元年」
m 代表「月份」
d 代表「日期」
如果我将 y 减少为两个
则西元年同样会省略前两码
而两个 m 和两个 d
也会将月份和日期以「两位数」的方式显示
年、月、日之间
也不一定非得用「斜线」符号区隔
我们可以它们改为中文的「年」
「月」
「日」
另外,在台湾填写生日时
常会使用到民国纪年
这时我们只要输入英文的 g
就可以显示「民国」两字
再输入 e 就可以显示民国的年份
事实上,即便是日期的数字部份
也可以完全使用中文来表达
我们可以先输入一个「左方括号」
接着输入DBNUM1
再补上一个「右方括号」
就可以将原本的阿拉伯数字转换为中文数字
另外,如果我们想要标注「星期」的话
它的代码是连续三个 a
以「周」几的方式显示
如果四个 a 的话则会显示为「星期」几
设定完毕后再按下「确定」
此时,你会发现栏位内的日期
变成一长串的 # 字号
这些符号代表了目前栏位的宽度
无法容纳所有的文字
因此我们可以将滑鼠游标
移到 C 栏和 D 栏之间
并且连按两下滑鼠左键来自动调整栏宽
当然,之后如果我们改变了心意
想要将日期恢复为预设格式的话
我们只要打开格式的下拉选单
点击「简短日期」
或是开启格式对话框
来选取其它的预设格式就 OK 啰
除了手动输入日期之外
我们也常借助快速键或函数
来处理时间类型的资料
像插入今天日期的快速键是Ctrl +;(分号)
插入目前时间的快速键是 Ctrl + Shift +;
而插入时间时
若要同时包含今天日期的话
则可以先按下 Ctrl +;之后
按一下键盘的空白键
再按下 Ctrl + Shift +;
就可以建立完整的时间资讯
不过要注意的是
这些日期或时间都是静态的资讯
也就是说当我们明天打开这个档案时
这些栏位的内容
并不会更新为当天的日期和时间
因此,当我们需要撷取即时的时间资讯时
我们可以借助两个函数
分别为 TODAY 和 NOW
使用 TODAY 函数时
我们不需要在圆括弧内输入任何的东西
就可以立即取得今天的日期
而 NOW 函数
更可以进一步的取得现在的时间
我们甚至可以开启格式对话框
连续输入两个 s(秒)
来让 NOW 函数显示到「秒数」的层级
这两个函数
都会在我们每次开启 Excel 档案时
撷取最新的日期和时间
而 NOW 函数更会随着
我们在储存格中输入或修改资料时
进行自动更新
另外,我们也可以透过键盘的 F9
来手动更新 NOW 函数的时间
实际上,无论是日期或时间
它们本质上都是一组数字
如果我将员工的生日
和上、下班时间框选起来
将它们的格式改为「一般」
你会发现所有的生日会变成五位数的数字
这些数字其实是源于
1900 年以来的「天数」
其中 1900 年 1 月 1 号代表了数字的 1
1 月 2 号代表 2
1 月 31 号代表 31,以此类推
而「时间」则是将一天的开始
也就是子夜 12 点视为 0
并且将一天的结束午夜 12 点视为 1
其它的时间则是以 0 到 1之间的小数来表示
譬如早上六点是 0.25
代表这一天已经过了四分之一
而中午十二点自然就是 0.5啰
由于日期和时间本质上是数字
因此它们是可以用来计算的
譬如我们可以将「下班时间」
减去「上班时间」
来得知每个员工的「工时」
不过,你会发现有时在进行时间的计算时
Excel 会忽略日期的差距
而得到错误的计算结果
因此,若要计算出正确「已经过」的时间
我们可以打开自订格式对话框
并且利用「方括号」来标注 h
代表「已经过」的小时数
同样地,如果你想要计算出「已经过」的分钟
你可以回到自订格式对话框
并且利用「方括号」来标注 m 就 OK 啰
在进行时间或日期的运算时
我们也可以善用 Excel 现成的函数
举例来说
如果我想要计算员工从「到职日」起
已经工作了多少天
我可以利用 TODAY 函数减去「到职日」
然后再将格式转换为「一般」
就可以计算出年资的「天数」
至于「年数」和「月数」的计算
Excel 则另外提供了一个方便的函数
称之为 DATEDIF
DATEDIF 的函数结构相当简单
我们只要输入一个「开始日期」
一个「结束日期」
以及指定一个计算的单位
DATEDIF 就可以立即计算出
这两日之间的天数、月数或年数
以「年数」为例
我可以先输入 DATEDIF 函数名称
然后点选「到职日」做为开始的日期
接着再加上一个逗点
来输入 TODAY 函数
至于计算的单位
我输入一个 Y 来代表「年份」
如此就可以计算出
所有员工从就职到现在的「年数」了
同样地
如果要计算从就职到现在的「月数」
我们只要将 DATEDIF 函数中的单位改为 M
不过,这里也有另一种年资的表达方式
就是将员工的年资
显示为几年「又」几个月
对此 DATEDIF 函数也有一个对应的单位
就是在 m 之前加上一个 y
如此 DATEDIF 就可以
自动忽略日期之间的「年数」差异啰
最后,我们来看一下「工作日」的计算
计算工作日和一般日期最主要的差异
在于「工作日」不包含周末和国订假日
因此在计算员工的轮班天数时
直接拿天数相减并不能算出正确的结果
针对这个问题
Excel 提供了一个名为
NETWORKDAYS 的函数
这个函数的结构与 DATEDIF 很类似
它同样包含了「起始日期」和「结束日期」
然而 NETWORKDAYS 却会自动排除周末
同时可以另外指定所谓的「假日」
所以今天如果我要算出
第一位员工的轮班天数
我可以先输入 NETWORKDAYS 的函数名称
接着指定工作起始日
输入一个逗点
再指定工作结束日
再输入一个逗点
然后将所有的假日框选起来
如此就可以轻松地计算出员工的轮班天数啰
当然,我们可能还会遇到一个问题
就是不一定每个员工都是放周六和周日
或许有的人因为轮班因素
而改放周日和周一
或是周一和周二等
针对这一点
Excel 有另一个叫做
NETWORKDAYS.INTL 的函数
可派得上用场
这个函数基本上就是 NETWORKDAYS 的进阶版
它的函数结构中
多了一个「自订周末」的引数
因此当我们使用 NETWORKDAYS.INTL 时
在设定好开始日和结束日之后
我们可以参考官方说明所提供的对照表
来输入周末类型的代码
以放周日和周一为例的话就是 2
最后我们再指定好假日的范围
就可以正确地算出这位员工的工作日啰
OK,那今天关于时间格式的介绍就说到这里
我们同样下回再见,拜拜