根据未知数量的IF语句执行功能

时间:2015-04-10 02:10:42

标签: excel if-statement

我需要以下方案的帮助:
A栏包含部门中的遭遇 B栏包含第一次管理的日期 C列包含上次管理的日期。

一般来说,我想从给定的A中减去C中的B列。直截了当。 但是,A列有重复。如果列A有重复(意味着在同一个部门遇到相同的事件),那么我想从C2中减去B1(即,从第一个开始在同一个A中的最后一次管理)IF B2> = C1,并在D1中生成零。如果不是(即日期不重叠),则从C1中减去B1,从C2中减去B2。也不算太糟糕。

但是,我们说A列有三个重复,C1重叠,B2和C2重叠B3。然后我想从C3中减去B1,并在D1和D2中生成零。

A列可以有多个重复日期,多个重叠日期(让我们说不是无限但最多五个),尽管它们并不总是重叠。

我很确定这涉及嵌套的IF(很多都是),但我没有得到正确的数字。我的最后一次尝试看起来像:

  

= IF(AND(E131<> E130,E131<> E132),(M131-L131)+ 1,IF(AND(E131 = E126,P131 = P126,L131&LT = M126),(M131- L126)+ 1,IF(AND(E131 = E127,P131 = P127,L131&LT = M127),(M131-L127)+ 1,IF(AND(E131 = E128,P131 = P128,L131&LT = M128),( M131-L128)+ 1,IF(AND(E131 = E129,P131 = P129,L131&LT = M129),(M131-L129)+ 1,IF(AND(E131 = E130,P131 = P130,L131&LT = M130) ,(M131-L130)+ 1,IF(AND(E131 = E136,P131 = P136,M131&GT = L136),(M136-L131)+ 1,IF(AND(E131 = E135,P131 = P135,M131&GT = L135),(M135-L131)+ 1,IF(AND(E131 = E134,P131 = P134,M131&GT = L134),(L134-M131)+ 1,IF(AND(E131 = E133,P131 = P133,M131&GT = L133),(L133-M131)+ 1,IF(AND(E131 = E132,P131 = P132,M131&GT = L132),(L132-M131)+1,(M131-L131)+1)))) )))))))

但我知道这是错误的,因为它并没有告诉位于重复链中间的单元格为零。这涉及到:

  

= IF(AND(F131<> F130,F131及LT;> F132),(N131-M131)+ 1,IF(AND(F131 = F130,F131及LT;> F132,N130&GT = M131),N131 -M130,IF(AND(F131 = F130,F131 = F132,N130&GT = M131,N131&GT = M132),0,(N132-M130)1)))

我觉得这需要循环功能或者我不知道该怎么做的东西。

1 个答案:

答案 0 :(得分:0)

逻辑太复杂,无法用IF处理。 如果A列有五个副本,其中四个条目成对重叠而另一个分开,该怎么办?如果有两个或多个相同的记录(完整重复)怎么办? 我建议添加一些额外的列 我们假设我们有13条记录。它们中的每一个代表一个管理间隔,并且都是“正确的”,即最后一次管理不早于第一次管理 E栏:= SUMPRODUCT( - ($ A $ 1:$ A $ 13 = A1))显示同一次遭遇的记录数。
列F:= SUMPRODUCT( - ($ A $ 1:$ A $ 13 = A1), - ($ B $ 1:$ B $ 10< = B1)) - 1显示同一次遭遇的其他间隔的数量不迟于这个。
G栏:= SUMPRODUCT( - ($ A $ 1:$ A $ 13 = A1), - ($ C $ 1:$ C $ 13> = C1)) - 1显示结束的同一次遭遇的其他间隔的数量不早于这个。
H列:= E1-SUMPRODUCT( - ($ A $ 1:$ A $ 13 = A1), - ($ C $ 1:$ C $ 13> = B1))显示结束的同一次遭遇的其他间隔的数量在此之前开始。
第一栏:= E1-SUMPRODUCT( - ($ A $ 1:$ A $ 13 = A1), - ($ B $ 1:$ B $ 13< = C1))显示开始的同一次遭遇的其他间隔的数量在此之后结束。
J列:= F1-H1表示同一次遭遇的其他间隔的数量,与第一次管理的日期重叠。 K列:= G1-I1表示同一次遭遇的其他间隔的数量,与上一次管理的日期重叠。 使用它,你就可以找到D列的正确逻辑。