基于规则的顺序编号公式

我有一个非常复杂的Excel公式,我需要创build,但我一直陷入困境。 我有这样的数据:

Date ID Focal Time Condition 08/22/2014 FJ 1 7:52:00 T 08/22/2014 FJ 1 7:52:00 T 08/22/2014 FJ 1 7:52:00 T 08/22/2014 RJ 1 8:52:00 T 08/22/2014 FJ 2 9:52:00 T 08/22/2014 FJ 2 9:52:00 T 08/22/2014 FJ 2 9:52:00 T 08/22/2014 FJ 2 9:52:00 T 08/22/2014 FJ 3 10:52:00 T 08/22/2014 FJ 3 10:52:00 T 08/22/2014 FJ 1 11:32:00 C 08/22/2014 FJ 1 11:32:00 C 08/22/2014 RJ 2 11:52:00 T 08/22/2014 RJ 2 11:52:00 T 08/22/2014 FJ 4 10:52:00 T 08/22/2014 FJ 4 10:52:00 T 08/22/2014 MD 1 12:52:00 T 08/22/2014 RJ 3 13:52:00 T 08/22/2014 RJ 3 13:52:00 T 08/22/2014 FJ 2 14:52:00 C 08/23/2014 FJ 1 7:52:00 T 08/23/2014 FJ 1 7:52:00 T 08/23/2014 RJ 1 8:52:00 T 08/23/2014 FJ 1 9:52:00 C 

我需要根据以下规则自动填充焦点号码列:

  • 第一项将始终为“1”。
  • 当date,时间和条件相同时,每个ID应具有相同的焦点编号。
  • 当只有时间改变时,数字应该依次列出。
  • 当条件改变时,数字应该从1开始,然后这些在时间改变时应该是连续的。
  • 如果条件更改为以前经历过的ID,则序列号应该在停止时提取。
  • 另外,当ID改变时,数字应该从1开始。
  • 最后,新的date将重新开始所有ID的这个过程。

我有这个解决scheme作为一个数组公式(input它使用Ctrl + Shift + Enter )例如在C2:

 =IF(COUNTIFS($A$1:$A1,$A2,$B$1:$B1,$B2,$E$1:$E1,$E2)=0,1,MAX(IF(($A$1:$A1=$A2)*($B$1:$B1=$B2)*($E$1:$E1=$E2),$C$1:$C1,0)+IF(COUNTIFS($A$1:$A1,$A2,$B$1:$B1,$B2,$E$1:$E1,$E2,$D$1:$D1,$D2)>0,0,1))) 
  • 这是查看当前行上的所有行(例如, $A$1:$A1locking起始位置作为顶部和最后一行)
  • 如果现在有匹配的date,上面的行中的ID和条件 – > 1
  • 否则,使用数组公式部分查找该date/ ID /条件的MAX Focal,如果是新的时间,则添加1

希望这是一个足够明确的解释…

这似乎给你的例子两个不同…最后一行(根据我的评论),还有FJ / T / 10:%2与焦点4 …组合已经存在。

祝你好运,并记得使用Ctrl + Shift + Enterinput

我有一些东西,但是我没能做到这一点。 在第2行中input以下内容并向下复制公式:

在F栏中:

 =A2&B2&D2&E2 ' Concatenate the required fields to create a reference 

在G栏中:

 =IF(COUNTIF($F$2:F2,F2)>1,"",1) ' Create a marker to determine the first occurrence of each reference 

在H栏中:

 =IF(G2=1,A2&B2&E2,"") ' Create a reference to count occurrences in a day 

在第一栏中:

 =IF(G2=1,COUNTIF($H$2:H2,H2),0) ' Count first occurrences in the day 

在J栏中:

 =INDEX($I$2:I2,MATCH(F2,$F$2:F2,0)) ' Return the count of first occurrences 

它可以整理很多,但我认为这是你所要求的,这是显示我所做的最简单的方法。