在处理员工考勤数据时,经常会遇到根据打卡时间判断班次的问题。假设我们有一份打卡时间的数据表,打卡时间数据源格式类似 “[日期] [时间]”,如何快速准确地计算出员工在哪个班次呢?这就需要用到Excel中强大的函数功能,主要涉及TEXTSPLIT函数、MID函数、IF函数以及OR函数。

Excel函数实战应用:轻松搞定打卡考勤班次计算-趣帮office教程网

一、提取打卡时间

TEXTSPLIT函数拆分提取

TEXTSPLIT 函数可以按照指定的分隔符拆分文本。在这个场景中,我们的数据源以空格作为日期和时间的分隔符。使用公式=TEXT(TIMEVALUE(INDEX(TEXTSPLIT(D3,," "),2)),"hh:mm:ss") :

  • TEXTSPLIT(D3,," "):这部分是用 TEXTSPLIT 函数将 D3 单元格中的内容以空格为分隔符进行拆分,得到一个包含日期和时间的数组。
  • INDEX(TEXTSPLIT(D3,," "),2):通过 INDEX 函数从拆分后的数组中提取第二个元素,也就是时间部分。
  • TIMEVALUE(INDEX(TEXTSPLIT(D3,," "),2)):将提取出的时间文本转换为时间值,方便后续进行时间比较。
  • TEXT(TIMEVALUE(INDEX(TEXTSPLIT(D3,," "),2)),"hh:mm:ss"):最后使用 TEXT 函数将时间值按照指定的格式 “hh:mm:ss” 显示出来。这个公式虽然看起来复杂一些,但优势在于不受数据中时间位置的影响,只要存在空格分隔,就能准确提取时间。

Excel函数实战应用:轻松搞定打卡考勤班次计算-趣帮office教程网

MID 函数定向提取

MID 函数则是从文本指定位置开始提取特定长度的字符。使用公式=MID(D3,12,8) :

这里假设时间部分在单元格内容的第 12 位开始,长度为 8 个字符(即 “hh:mm:ss” 的长度)。这个公式相对简单直接,但前提是要明确知道时间在单元格中的固定位置。

Excel函数实战应用:轻松搞定打卡考勤班次计算-趣帮office教程网

二、判断班次

提取完时间后,接下来要根据时间进行区间判断来确定班次。规定时间在 7:10 分之前的,以及在 23:00 以后的都是夜班,反之则为白班。这里我们使用 IF 函数结合 OR 函数来实现判断,公式为=IF(OR(TIMEVALUE(INDEX(TEXTSPLIT(D3,," "),2))<TIME(7,10,0),TIMEVALUE(INDEX(TEXTSPLIT(D3,," "),2))>TIME(23,0,0)),"晚班","白班") :

  • TIME(7,10,0)TIME(23,0,0):分别表示 7:10:00 和 23:00:00 这两个时间点,用于和提取出的打卡时间进行比较。
  • OR(TIMEVALUE(INDEX(TEXTSPLIT(D3,," "),2))<TIME(7,10,0),TIMEVALUE(INDEX(TEXTSPLIT(D3,," "),2))>TIME(23,0,0)):OR 函数判断两个条件,只要提取出的打卡时间小于 7:10:00 或者大于 23:00:00,就返回 TRUE。
  • IF(OR(…),"晚班","白班"):最后 IF 函数根据 OR 函数的判断结果,如果为 TRUE 则返回 “晚班”,否则返回 “白班”。

Excel函数实战应用:轻松搞定打卡考勤班次计算-趣帮office教程网

通过以上方法,利用 Excel 的函数组合,就能快速准确地根据打卡时间计算出员工所在的班次,大大提高考勤数据处理的效率。