excel统计数据出现次数及判断是否为最后一次教程
在处理excel 365或excel 2019等版本的长表格时,经常需要对重复出现的名称进行计数,并标记出该名称最后一次出现的位置以进行汇总或高亮处理。通过灵活运用 COUNTIF 的绝对引用技巧以及 IF 与 ROW 函数的组合,可以实现需要的效果。
一、 计算名称出现的第几次
要判断单元格的值是第几次出现,核心在于使用“半绝对引用”的 COUNTIF 函数,让搜索范围随单元格向下填充而动态扩展。
1、假设你的名称列表从A2单元格开始。
2、在B2单元格输入以下公式:
=COUNTIF($A$2:A2, A2)
3、选中B2单元格右下角的填充柄,向下拖拽应用。

说明:此公式的关键在于 $A$2:A2。前面的 $A$2 锁定了起点,而后面的 A2 随行号增加变为 A3、A4 等,从而实现了只统计“从表头到当前行”范围内该名称出现的次数。
二、 判断是否为该名称最后一次出现
如果名称已经过排序,判断最后一次出现的方法较为简单。如果数据未排序,需要使用数组逻辑来锁定最大行号。
标记“最后一次”文字
在C2单元格输入以下公式,该公式会对比当前行的行号是否等于该名称在全表中的最大行号:
=IF(ROW()=MAX(IF(A$2:A$100=A2, ROW(A$2:A$100))), "最后一次", "")

注意:如果你的excel版本较低,输入此公式后可能需要按 Ctrl + Shift + Enter 触发数组运算。
在最后一次出现处统计合计数量
如果你希望在每个分类的最后一行自动算出该水果的总数,可使用 SUMIF 进行逻辑嵌套:
=IF(ROW()=MAX(INDEX((($A$2:$A$100=A2)*ROW($A$2:$A$100)), 0)), SUMIF($A$2:$A$100, A2, $B$2:$B$100), "")

此公式会先判断当前是否为该项目的最后一行,如果是,计算整个A列中所有同名项对应B列数值的总和,否则留空。
三、 常见问题排查
1、公式不生效:请检查名称列是否存在多余的空格。建议先对名称列执行 TRIM 函数清理空格,否则excel会将“苹果”和“苹果”视为两个不同的项目。
2、计算缓慢:如果在数万行数据中使用 MAX(IF(...)) 数组公式,可能会引起程序挂起。对于已排序的数据,可以使用更简单的逻辑:=IF(A2<>A3, "最后一次", "")。






