如何使用“如果包含”?

时间:2018-06-28 04:59:39

标签: 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 it is an 5 hour shift

有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

因此,为了清楚起见,我将在几列中逐步进行开发。这些可以组合成一个难以理解的公式,但这对您没有帮助。您可以执行我在这里建议的操作,然后使用计算隐藏列。 假设您的时间在A列中。您可以在第一行中执行以下操作(如果您有标题,则假设第1行,可能是第2行),然后向下复制公式。在B列中,放置了=search("-",A1),它指示-符号在哪里。在C列中,我第一次使用=left(A1,B1-2)作为字符串,它使第一个字符最多到破折号前的2。在DI列中有=mid(A1,B1+2,5),它从破折号到末尾两个字符(如果只有4个字符,则复制4个而不是5个字符),最后在E列中,我们找到所需的结果,{ 1}}。 那就是你问的。如果您想增加分钟数,可以使用=HOUR(timevalue(D1)-timevalue(C1))。最后,如果存在22:00-6:00墓地转移,则需要为其添加逻辑。 您还可以通过在B列中使用公式=MINUTE(timevalue(D1)-timevalue(C1))然后放入=split(A1,"-")

来简化字符串计算。

因此,如果您真的想要一个公式,可以为=HOUR(timevalue(C1)-timevalue(B1)),该公式将第二个部分减去第一部分并转换为小时。

如果您想在午夜时分进行自动换行,=hour(INDEX((split(A1,"-")),2)-INDEX((split(A1,"-")),1))应该可以解决问题。

更新:工作表将拆分产生的时间识别为时间。因此,如果您愿意保留会议记录,那么如果在B1中放置=iferror(hour(INDEX((split(A1,"-")),2)-INDEX((split(A1,"-")),1)),24-hour(INDEX((split(A1,"-")),1)-INDEX((split(A1,"-")),2))),则D1可以包含=split(A1,"-")。它甚至可以为22:00-2:00提供正确的答案。

答案 1 :(得分:0)

创建一个表,其中包含用于轮班的列(如果选择了该方法,则可能是用于验证的列表),并且在相应轮班持续时间的右侧紧随其后的列。我将该表命名为Larry。然后在C2中(假设您的第一个下拉列表在B2中):

  =ArrayFormula(vlookup(B1:B,Larry,2,0))