Google sheets 如何使用;如果包含“;?

Google sheets 如何使用;如果包含“;?,google-sheets,google-sheets-formula,Google Sheets,Google Sheets Formula,我正在尝试制作一个工作计划表,我在一列中有一个员工工作时间的下拉列表,我希望它显示旁边的小时数。即: Column B (Selected from a drop down menu) Column C 6:00 - 14:30 to display 8 as it is an 8 hour shift 10:00 - 15:00 to display 5 as

我正在尝试制作一个工作计划表,我在一列中有一个员工工作时间的下拉列表,我希望它显示旁边的小时数。即:

Column B (Selected from a drop down menu) Column C 6:00 - 14:30 to display 8 as it is an 8 hour shift 10:00 - 15:00 to display 5 as it is an 5 hour shift B列(从下拉菜单中选择)C列 6:00-14:30显示8,因为这是一个8小时的班次 10:00-15:00显示5,因为这是5小时轮班
有办法做到这一点吗?

为了清楚起见,我将在几个专栏中一步一步地阐述这一点。这些可以组合成一个难以理解的公式,但这无助于你遵循。您可以执行我在这里建议的操作,然后使用计算隐藏列。 假设您的时间在A列。您可以在第一行执行以下操作(我的假设为第1行,如果您有标题,可能是第2行),然后向下复制公式。在B列中,我放置了,
=search(“-”,A1)
,它告诉我们-符号在哪里。在C列中,我发现第一次是一个
=left(A1,B1-2)
的字符串,它将破折号前的前两个字符加起来。在D列中,我有
=mid(A1,B1+2,5)
,它从破折号后的2个字符到末尾(如果只有4个字符,它复制4个而不是5个),最后在E列中,我们找到了所需的结果,即
=HOUR(timevalue(D1)-timevalue(C1))
。 这就是你要求的。如果要添加分钟,可以使用
=MINUTE(timevalue(D1)-timevalue(C1))
。最后,如果存在22:00-6:00的墓地轮班,您需要为其添加逻辑。 您还可以在B列中使用公式
=split(A1,“-”
简化字符串计算,然后将
=HOUR(timevalue(C1)-timevalue(B1))

因此,如果你真的想要一个单一的公式,它可以是
=hour(INDEX((split(A1,“-”),2)-INDEX((split(A1,“-”),1))
,它从第二部分减去第一部分并转换为小时

如果您想在午夜前后处理换行操作,
=iferror(hour(INDEX)((split(A1),-”),2)-INDEX((split(A1),-”),1)),24小时(INDEX((split(A1),-”),1)-INDEX((split(A1),-”),2))
应该可以完成这项操作


更新:工作表将拆分产生的时间识别为时间。因此,如果在B1中放置
=split(A1,“-”
,如果您愿意保留会议记录,D1可以包含
=C1-B1
。它甚至给出了22:00-2:00的正确答案。

制作一个表格,表格中有一列用于轮班(如果您选择了该方法,这可能是用于验证的列表)和一列紧靠其右侧的相应轮班持续时间。我把那张表命名为拉里。然后在C2中(假设您的第一个下拉列表在B2中):


哎呀,我是说5个小时的轮班你想用不是整小时的轮班做什么?另外,午夜前后是否有轮班?只有8小时轮班或5小时轮班,从技术上讲,8小时是8.5小时,但有30分钟的无薪休息时间。不,午夜过后没有班次。
  =ArrayFormula(vlookup(B1:B,Larry,2,0))