如何用单个公式高亮各月度数据区域内的重复Emp ID行?
单公式实现月度内重复Emp ID高亮方案
需求
现有1月至今的分月度员工薪资数据,各月份数据连续排列,需要高亮同一月度内重复出现的Emp ID行(属于错误录入,仅需发放一次薪资)。
数据示例
2022年1月数据
| Emp ID | Employee Name | Month | Salary |
|---|---|---|---|
| 2122 | ABC | Jan-2022 | 1000 |
| 1898 | ACD | Jan-2022 | 2000 |
| 2122 | ABC | Jan-2022 | 1000 |
| 4466 | CAD | Jan-2022 | 4000 |
| 3432 | DAC | Jan-2022 | 5000 |
2022年2月数据
| Emp ID | Employee Name | Month | Salary |
|---|---|---|---|
| 2122 | ABC | Feb-2022 | 1000 |
| 1898 | ACD | Feb-2022 | 2000 |
| 3432 | DAC | Feb-2022 | 3000 |
| 4466 | CAD | Feb-2022 | 4000 |
| 3432 | DAC | Feb-2022 | 3000 |
注:1月的Emp ID 2122、2月的Emp ID 3432为重复项,需高亮
原实现方式
之前通过两个辅助列配合条件格式完成:
- D列公式:
=CEILING(COUNTA(A2:A$3)/7,1)(生成分组计数,区分不同月份) - E列公式:
=COUNTIFS(A$2:A$13,A2,D$2:D$13,D2)(统计同组内当前Emp ID的出现次数) - 条件格式用公式:
=$E2=2触发高亮
单公式解决方案
直接把分组逻辑整合到条件格式公式里,无需额外辅助列,分两种场景:
场景1:有单独的月份列
如果数据里有明确的月份列(比如示例中的Month列,对应单元格C2:C13),直接用以下公式作为条件格式规则:
=COUNTIFS($A$2:$A$13,$A2,$C$2:$C$13,$C2)>1
- 逻辑:同时匹配当前行的Emp ID和月份,统计该组合的出现次数,次数大于1则高亮。
- 操作:选中需要应用格式的单元格区域,打开条件格式-新建规则-使用公式确定要设置格式的单元格,输入上述公式后设置高亮格式即可。
场景2:无单独月份列(仅按月份连续分组)
如果数据没有单独月份列,只有按月份连续排列的结构(比如1月数据占A2:A6,2月占A7:A11),可以用数组公式实现:
=COUNTIFS($A$2:$A$13,$A2,$A$2:$A$13,">="&INDEX($A$2:$A$13,MATCH(TRUE,ISNUMBER(SEARCH("Month",$B$2:$B$13)),0)),$A$2:$A$13,"<="&INDEX($A$2:$A$13,MATCH(TRUE,ISNUMBER(SEARCH("Month",$B$2:$B$13)),0)+4))>1
- 说明:通过
MATCH定位每个月份的标题行,再确定该月份的行范围,统计范围内Emp ID的重复次数;需根据每个月的实际数据行数调整公式中的+4(示例中每个月有4条数据行)。 - 操作:输入公式后按
Ctrl+Shift+Enter完成数组公式输入,再设置高亮格式。
内容的提问来源于stack exchange,提问作者Rakshitha
相关产品推荐
相关产品推荐

