Excel列唯一值统计:首次出现标记1、后续标记0的实现方法求助
Excel重复姓名首次出现标记为1,后续为0的解决方案
方法1:通用COUNTIF公式(适配所有Excel版本)
假设姓名数据在A列(从A2开始,A1为表头),在B2单元格输入以下公式,然后下拉填充整列:
=IF(COUNTIF($A$2:A2,A2)=1,1,0)
- 原理:
$A$2:A2是混合引用,下拉时范围会扩展到当前行,统计当前姓名在「从A2到当前行」范围内的出现次数。如果次数为1,说明是首次出现,标记为1;否则标记为0。
方法2:动态数组公式(适配Excel 365/2021)
如果你的Excel支持动态数组,在B2单元格输入以下任一公式即可自动溢出填充,无需下拉:
=--(COUNTIFS(A2:A$7,A2:A$7)=1)
或者:
=--(ROW(A2:A$7)=MATCH(A2:A$7,A2:A$7,0))
- 原理:
--用于将布尔值(TRUE/FALSE)转换为1/0;MATCH会返回每个姓名首次出现的行号,和当前行号对比,相等则为首次出现。
示例效果
| A列(姓名) | B列(标记) |
|---|---|
| Shelly | 1 |
| Shelly | 0 |
| Adam | 1 |
| Shelly | 0 |
| Adam | 0 |
| Chris | 1 |
| Chris | 0 |
你之前用IF函数失败,大概率是引用范围设置错误(比如用了绝对引用整个A列,导致统计的是姓名在整列的总出现次数,而非到当前行的次数),调整引用范围即可解决。
内容的提问来源于stack exchange,提问作者Jesse Y
相关产品推荐
相关产品推荐

