我有一个工作日程表,其中列出了员工轮班作为持续时间,即11-7,1030-6等在一个单元格中。如果这些是像6、1130等这样的单个时间,我可以很容易地转换为时间格式,但是如何让这些单元格以时间格式显示班次的开始和结束时间?目标是让excel使用这些时间,根据安排的班次对另一个工作表上的相应员工进行排序和筛选。有没有办法显示"hh:mm-hh:mm“来表示一个单元格中的移位?
发布于 2021-02-02 22:59:52
使用公式可以做到这一点,但您必须具体说明格式和测试条目。
要理解的公式的主要部分是如何分隔"-“两边的时间”值“。此解决方案假定短划线( "-“)始终出现在单元格中。对于shift项"2-11”(假设它在单元格A2中),您可以使用FIND
、LEFT
和RIGHT
的组合,使用以下公式分隔“-”两侧的所有字符
Cell A2 contains "2-11"
LEFT(A2,FIND("-",A2)-1 returns "2"
RIGHT(A2,LEN(A2)-FIND("-",A2)) returns "11"
重要:这些公式现在成为“时间值”,并将在一个更大的公式中重复。
从现在开始,需要通过在字符串中的适当位置添加冒号":“将字符串重新格式化为时间格式的字符串,以便创建Excel时间值。
Helper列用于干净地获取所有值,如下例所示:
B2中的公式:=IF(LEN(LEFT(A2,FIND("-",A2)-1))<=2,TIMEVALUE(LEFT(A2,FIND("-",A2)-1)&":00"),TIMEVALUE(LEFT(A2,FIND("-",A2)-3)&":"&RIGHT(LEFT(A2,FIND("-",A2)-1),2)))
C2中的公式:=TIMEVALUE(IF(LEN(RIGHT(A2,LEN(A2)-FIND("-",A2)))<=2,RIGHT(A2,LEN(A2)-FIND("-",A2))&":00",LEFT(RIGHT(A2,LEN(A2)-FIND("-",A2)),LEN(RIGHT(A2,LEN(A2)-FIND("-",A2)))-2)&":"&RIGHT(RIGHT(A2,LEN(A2)-FIND("-",A2)),2)))
D2中的公式:=IF(C2>B2,C2,C2+TIME(12,0,0))
E2中的公式:=(D2-B2)*24
F2中的公式:=TEXT(B2,"hh:mm")&" - "&TEXT(D2,"hh:mm")
https://stackoverflow.com/questions/65994881
复制相似问题