Excel 基于多个标准计算连续值

Excel 基于多个标准计算连续值,excel,excel-formula,Excel,Excel Formula,我想计算为特定供应商提供服务的连续员工(D列),基于费用是否超过20k(G列) 我有一个公式是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年后在同一个客户机上重复出现,并且没有重置计数,则会导致错误计数 第7行应显示为1,

我想计算为特定供应商提供服务的连续员工(D列),基于费用是否超过20k(G列)

我有一个公式是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年后在同一个客户机上重复出现,并且没有重置计数,则会导致错误计数

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


如果有人可以帮助编辑此公式,使其在其他员工在几年内适应后重置?

只要您的第1行没有数据,例如标题。然后在E2中

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

并将其粘贴到底。

@Edward的答案看起来不错。备选方案(Excel 2019、O365):

=IFS(G2=“No”、“OR”(和(G2=“Yes”、A1和D1A2和D2)和(G2=“Yes”、SUMPRODUCT(($A$1:A1和$D$1:D1)=A2和D2)*1)=0)、1和(G2=“Yes”、SUMPRODUCT(($A$1:A1和$D$1:D1)=A2和D2)*1)>0)、E1 1)
输出:

编辑:对于旧版本的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)))
=IF(G2=”否“、”、IF(或(和(G2=”是“、A1&D1A2&D2)”和(G2=”是“、SUMPRODUCT(($A1:A1&D1:D1)=A2&D2)*1)=0))、1、IF(和(G2=”是“、SUMPRODUCT(($A1:A1&D1:D1)=A2 D2)*1)、E1+1)))

我无法将数字(1放入单元格E1)放入任何单元格中,因为列表是动态的,并且在排序时会发生变化。因此,如果您的标题始终保留在第1行中。然后,我可以根据这一点进行更新,我得到一个#值!前4行(第2-5行)出现错误,但当我尝试进入代码时(当john doe加入时),它会在第6行开始工作,而不进行任何编辑,然后按enter键(或Ctrl+Shift+enter键)我会得到一个#名称?错误。当我将代码复制到电子表格中时也是如此。您知道为什么会出现这种情况吗?IFS函数与Excel 2019和O365兼容。所以,你似乎没有这些版本中的一个。我已经编辑了我的答案并上传了一个新的文件。啊,这是可行的,但有一个问题。如果一笔费用在几年之间从“否”变为“是”,那么公式将以#VALUE打破!错误我将“”更改为0,并解决了它。谢谢你的帮助和时间!非常感谢:)
=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)))