Excel,复杂 IF/ELSE/MACROS

Excel,复杂 IF/ELSE/MACROS

我完全被这个问题难住了,非常感谢您的帮助!假设我在发电厂有 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 |

相关内容