我完全被这个问题难住了,非常感谢您的帮助!假设我在发电厂有 2 个班次,班次 1 = 晚上 10 点至凌晨 4 点,班次 2 = 早上 8 点至下午 4 点。凌晨 4 点到 8 点之间,工厂没有工作。单元格 A1 = 入站时间,单元格 B1 = 出站时间,单元格 C1 = 处理(或工作)时间。我正在尝试找到一个可以计算处理时间的公式,例如,入站时间(在单元格 A2 中)是早上 6:00,出站时间(在单元格 B2 中)是下午 3:00,那么单元格 C2 中的处理时间应该是 6。
IF((IF 4:00<A2<8:00,"0", ??)
时间语法让我完全困惑。我考虑了一个嵌套的 IF 语句,其中有 4 种情况,1) 入站和出站时间都在两个班次范围之间,2) 出站不在范围内但入站在范围内,3) 2 的反之亦然,4) 两个时间都不在范围内
同样,编写宏怎么样?(时间值可能总是以小时为单位,例如 2:00、3:00、4:00 和 24 小时制)。我定义了变量,并想到了一种显示入站和出站时钟小时的方法,但我陷入困境
sub time()
dim inbound as string
dim outbound as string
dim processing as string
inbound = Thisworkbook.Sheets("Sheet1").Range("A:A").Value
outbound = Thisworkbook.Sheets("Sheet1").Range("B:B").Value
processing = Thisworkbook.Sheets("Sheet1").Range("C:C").Value
IF Len(inbound) = 2 Then
inbound = "00:" & inbound
ELSEIF Len(inbound) = 3 Then
inbound = "0" & Left(inbound,1) & ":" & Right(inbound,2)
ELSEIF Len(inbound) = 4 Then inbound = Left(val,2) & ":" & Right (inbound,2)
ELSE inbound = "Not a valid time"
(之后对于出站也使用相同的 if else 语句)
请给予帮助,我们将不胜感激!
答案1
此公式涵盖了昨天下班后开始的工作,今天完成的工作。另外 15:00-8:00 = 7 小时,而不是 6 小时。有午餐时间吗?
=(IF(VALUE(A1)>VALUE("16:00"),VALUE("24:00")-IF(VALUE(A1)<VALUE("22:00"),VALUE("22:00"),VALUE(A1)),0)+IF(VALUE(B1)>VALUE("16:00"),VALUE("16:00"),VALUE(B1))-IF(VALUE(A1)<VALUE("8:00"),VALUE("8:00"),VALUE(A1))+IF(VALUE(A1)<VALUE("4:00"),VALUE("4:00")-VALUE(A1),0))*24
答案2
可能最简单的方法是拥有几个计算单元。
使E2
低压侧A2
与停机时间重叠:=MIN(MAX(A2,"4:00"),"8:00")
使F2
低压侧B2
与停机时间重叠:=MAX(MIN(B2,"8:00"),"4:00")
然后计算C2
就很简单了:=B2-A2-(F2-E2)
例如:
| | A | B | C | D | E | F |
|1| In | Out | Work | | Min | Max |
|2| 6:00 | 10:00 | 2h | | 6:00 | 8:00 |
|3| 9:00 | 10:00 | 1h | | 8:00 | 8:00 |
|4| 2:00 | 10:00 | 4h | | 4:00 | 8:00 |