根据多个条件对连续值进行计数

时间:2020-04-30 23:29:52

标签: excel excel-formula

我想根据费用是否超过2万(Col G)来计算为特定供应商服务的连续员工(Col D)

我有这个公式是Col G并将其向下拖动:

{=SUMPRODUCT(($A$2:A2=A2)*($D$2:D2=D2)*($G$2:G2="Yes")*(ROW($G$2:G2)>MAX(IF(($A$2:A2=A2)*($D$2:D2=D2)*($G$2:G2="No"),ROW($G$2:G2)))))}

但是,如果员工在x年后在同一位客户上重复工作并且不重置该计数,则会导致错误计数。

enter image description here

第7行应显示为1,而不是5。

如果有人可以帮助编辑此公式以使其在几年后又适合另一名员工之后重新设置?

2 个答案:

答案 0 :(得分:1)

@Edward的回答看起来不错。替代(Excel 2019,O365):

=IFS(G2="No","",OR(AND(G2="Yes",A1&D1<>A2&D2),AND(G2="Yes",SUMPRODUCT((($A$1:A1&$D$1:D1)=A2&D2)*1)=0)),1,AND(G2="Yes",SUMPRODUCT((($A$1:A1&$D$1:D1)=A2&D2)*1)>0),E1+1)

输出: Accum

Sheet.v2

编辑:对于旧版本的Excel:

=IF(G2="No","",IF(OR(AND(G2="Yes",A1&D1<>A2&D2),AND(G2="Yes",SUMPRODUCT((($A$1:A1&$D$1:D1)=A2&D2)*1)=0)),1,IF(AND(G2="Yes",SUMPRODUCT((($A$1:A1&$D$1:D1)=A2&D2)*1)>0),E1+1)))

答案 1 :(得分:0)

只要第1行没有数据,例如标头。然后在E2中放

 =sum(if((A2=A1)*(B2=B1)*(D2=D1)*(G2="Yes")*(DatedIF(C1,C2,"y")=1),E1+1,1))

并将其完全粘贴到下。