我怎样才能改善我的MS Excel公式?

这是我写的一个代码,用来检查员工是否有超过5天的连续工作时间 – 这是不允许的。 所以写这个确保这不会发生。 我知道代码的作品,但它看起来很可怕,所以我想知道如何改善这一点?

这里是参数。 我只想计算73,311,711。这些组合不能超过连续5天而没有间断。

这是我的代码:

= IF(IF(COUNTIFS(B15:G15, “<>” &$ Z $ 21 B15:G15, “<> VL”,B15:G15, “<> LWOP”)> 5,COUNTIFS(B15:G15,” <> “&$ Z $ 21 B15:G15,”<> VL”,B15:G15, “<> LWOP”),0)+ IF(COUNTIFS(C15:H15, “<>” &$ Z $ 21 C15 :H15, “<> VL”,C15:H15, “<> LWOP”)> 5,COUNTIFS(C15:H15, “<>” &$ Z $ 21 C15:H15, “<> VL”,C15:H15 , “<> LWOP”),0)+ IF(COUNTIFS(D15:I15, “<>” &$ Z $ 21 D15:I15, “<> VL”,D15:I15, “<> LWOP”)> 5 ,COUNTIFS(D15:I15, “<>” &$ Z $ 21 D15:I15, “<> VL”,D15:I15, “<> LWOP”),0)+ IF(COUNTIFS(E15:J15,“< > “&$ Z $ 21 E15:J15,”<> VL “E15:J15, ”<> LWOP“)> 5,COUNTIFS(E15:J15, ”<>“ &$ Z $ 21 E15:J15,” <> VL”,E15:J15, “<> LWOP”),0)+ IF(COUNTIFS(F15:K15, “<>” &$ Z $ 21 F15:K15, “<> VL”,F15:K15, “<> LWOP”)> 5,COUNTIFS(F15:K15, “<>” &$ Z $ 21 F15:K15, “<> VL”,F15:K15, “<> LWOP”),0)+ IF( COUNTIFS(G15:L15, “<>” &$ Z $ 21 G15:L15, “<> VL”,G15:L15, “<> LWOP”)> 5,COUNTIFS(G15:L15, “<>” &$ Z $ 21 G15:L15, “<> VL”,G15:L15, “<> LWOP”),0)+ IF(COUNTIFS(H15:M15, “<>” &$ Z $ 21 H15:M15,“< > VL “H15:M15, ”<> LWOP“)> 5,COUNTIFS(H15:M15, ”<>“ &$ Z $ 21 H15:M15, ”<> VL“,H15:M15,”<> LWOP “),0)+ IF(COUNTIFS(I15:N15,”<> “&$ Z $ 21 I15:N15,”<> VL”,I15:N15, “<> LWOP”)> 5,COUNTIFS(I15: N15,“<> “&$ Z $ 21 I15:N15,”<> VL”,I15:N15, “<> LWOP”),0)+ IF(COUNTIFS(J15:O15, “<>” &$ Z $ 21 J15:O15 , “<> VL”,J15:O15, “<> LWOP”)> 5,COUNTIFS(J15:O15, “<>” &$ Z $ 21 J15:O15, “<> VL”,J15:O15,” <> LWOP “),0)+ IF(COUNTIFS(K15:P15,”<> “&$ Z $ 21 K15:P15,”<> VL”,K15:P15, “<> LWOP”)> 5,COUNTIFS (K15:P15, “<>” &$ Z $ 21 K15:P15, “<> VL”,K15:P15, “<> LWOP”),0)+ IF(COUNTIFS(L15:Q15, “<>” L15:Q15,L15:Q15,LWOP,L15:Q15,5,COUNTIFS(L15:Q15,“<>” &$ Z $ 21,L15:Q15,“<> VL”,L15:Q15,“<> LWOP”,L15:Q15,“<>”&“”),0)> 0,“错误”,“”)

在这里输入图像说明

如果员工1计划连续工作五天以上,则这个公式将会为TRUE:

=6>MAX(FREQUENCY(IF(ISNUMBER(B15:P15),COLUMN(B15:P15)),IF(NOT(ISNUMBER(B15:P15)),COLUMN(B15:P15)))) 

这是一个数组公式,并且必须用Ctrl + Shift + Enter确认

没有辅助细胞需要。

这是通过作出责任代码是数字的假设,而其他代码不是。

分成两步。 做一堆细胞说:

 B16=COUNTIFS(B15:G15,"<>"&$Z$21,B15:G15,"<>VL",B15:G15,"<>LWOP" C16=COUNTIFS(C15:H15,"<>"&$Z$21,C15:H15,"<>VL",C15:H15,"<>LWOP" D16=COUNTIFS(D15:I15,"<>"&$Z$21,D15:I15,"<>VL",D15:I15,"<>LWOP" E16=COUNTIFS(E15:J15,"<>"&$Z$21,E15:J15,"<>VL",E15:J15,"<>LWOP" F16=COUNTIFS(F15:K15,"<>"&$Z$21,F15:K15,"<>VL",F15:K15,"<>LWOP" ... L16=COUNTIFS(L15:Q15,"<>"&$Z$21,L15:Q15,"<>VL",L15:Q15,"<>LWOP",L15:Q15,"<>"&" " 

然后把它们结合起来:

 =IF((B16>5,B16,0) +IF(C16>5,C16,0) +IF(D16>5,D16,0) +IF(E16>5,E16,0) .. +IF(L16>5,L16,0)>0,"Error","")