如何根据相同姓名条件在表格中生成分组递增的序号序列?
解决方案
该需求可以直接通过表格函数实现,不同场景下的可用公式如下:
通用兼容公式(适配Excel 2010及以上版本、全版本WPS表格)
在B2单元格输入以下公式,按回车确认后,选中B2单元格,将鼠标移到单元格右下角,待光标变为十字填充柄后向下拖拽到所有数据行即可:=A2&" ("&COUNTIF(A$2:A2,A2)&")"
公式逻辑说明
COUNTIF(A$2:A2,A2):用于统计从A2单元格到当前行A列单元格中,和当前行A列姓名一致的单元格数量。其中A$2使用绝对引用固定统计起始位置,向下拖拽时起始位置不会变化,结束位置会随当前行自动下移,刚好可以统计该姓名截止到当前行的出现次数&是文本拼接符,负责把姓名、空格+左括号、统计次数、右括号拼接成目标格式
如果需要兼容A列可能存在的空白单元格,避免空白行输出 (1)的异常结果,可以使用带判断的优化公式:=IF(A2="","",A2&" ("&COUNTIF(A$2:A2,A2)&")")
动态数组公式(适配Excel 365、WPS 365)
如果不想手动拖拽填充,可以在B2单元格输入以下公式,按回车确认后会自动批量生成所有行的结果,无需额外操作:=BYROW(A2:INDEX(A:A,COUNTA(A:A)),LAMBDA(x,IF(x="","",x&" ("&COUNTIF(A$2:x,x)&")")))
该公式会自动识别A列有数据的最后一行,不需要手动调整统计范围。
内容的提问来源于stack exchange,提问作者Jorge Cárdenas González
相关产品推荐
相关产品推荐

