我有一个时间表,用于计算一周的总工作时长,以及计算开门和关门时在场的员工人数。时间表设置了嵌套的 IF 语句,以忽略单词“Off”、“Vac”或“Flex”。经理有时会分天工作,因此经理有两行,时间表会计算这两行的总工作时长。所有工作都正常,只是我无法弄清楚当任一经理行中有经理在场开门或关门时如何返回“1”。单元格 F41 应该返回“1”,因为经理在 10:00 AM 开门时在场。我推测问题出在单元格 F38 上,我在其中生成了一个“0”来替换单词“Flex”。我可以使用“=IF(OR(D88<=0.416666666666667,D89<=0.416666666666667),1,0)”让 F41 返回正确的值,但结果失败,因为 D88 中输入了“Flex”。我如何才能让此单元格忽略输入的单词并仍返回准确的开始和结束信息?如果这很重要,我正在使用 Excel 2007。TIA Carl
Google Drive 文件链接: https://docs.google.com/spreadsheets/d/1DBthdGpjVJqzBp5OyfpCyjfmaEIP6UPk/edit?usp=sharing&ouid=113960402099335765622&rtpof=true&sd=true
答案1
问题在于,你设置公式的方式实际上是在说
如果第一行包含任何单词 Off、Vac 或 Flex,则返回 0 [不执行任何其他操作]
这里重要的是,一旦满足它发现的第一个条件为 TRUE,IF 就会退出。因此,发现 F38 包含 Flex,它就停在那里。它不会在第 38 行放置零。
你想要的是这个:
如果第一行或第二行是 10AM,则返回 1,否则返回 0
任何其他值与此计算无关。
我认为您在使用 Flex 一词时遇到问题的原因是因为您正在将单元格与时间的十进制表示进行比较。这应该有效:
=IF(OR(A1=TIME(10,0,0),A2=TIME(10,0,0)),1,0)
您可以将其调整为您的结束栏,并确保使用TIME(18,0,0)
。