基于规则的顺序编号公式
我有一个非常复杂的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:$A1
locking起始位置作为顶部和最后一行) - 如果现在有匹配的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
它可以整理很多,但我认为这是你所要求的,这是显示我所做的最简单的方法。