如何在类谷歌表格软件中用ARRAYFORMULA生成跳过指定状态的反向编号列表
反向编号公式方案(跳过离职/解雇行)
公式逻辑
通过基础条件判断与计数函数实现需求:
- 先判定当前行雇佣状态是否为「Resigned」或「Dismissed」,符合则留空
- 统计整个数据区域内的有效总行数(即反向编号的最大值)
- 统计当前行之前的有效行数,用最大值减去该数值得到当前行的反向编号
具体公式
假设数据从第2行(A2)开始,到第9行(A9)结束,雇佣状态对应C列,在A2单元格输入以下公式后下拉至所有行:
=IF(OR(C2="Resigned",C2="Dismissed"),"",COUNTIFS($C$2:$C$9,"<>Resigned",$C$2:$C$9,"<>Dismissed") - COUNTIFS($C$2:$C1,"<>Resigned",$C$2:$C1,"<>Dismissed"))
适配示例表格的效果
下拉公式后会自动生成符合要求的编号:
| 编号 | 姓名 | 雇佣状态 |
|---|---|---|
| 5 | John | Full-time |
| Mary | Resigned | |
| 4 | Jack | Part-time |
| 3 | Tim | Contract |
| Jane | Dismissed | |
| 2 | Jonathan | Full-time |
| 1 | Larry | Part-time |
注意事项
- 公式中的
$C$2:$C$9是固定数据区域范围,需根据实际数据的最后一行调整 - 若表头在第1行,
$C$2:$C1会自动识别为当前行之前无有效数据,返回0,不影响计算
内容的提问来源于stack exchange,提问作者qazamy
相关产品推荐
相关产品推荐

