如何将标记唯一/重复值的COUNTIF下拉公式转换为数组公式
重复标记公式转数组方案
原公式的核心逻辑是逐行统计A列从首行到当前行的对应值出现次数,首次出现标记为Unique,后续重复出现标记为Duplicated,以下是不同办公软件的数组实现方式:
Google Sheets
直接在目标列首个单元格输入即可自动向下溢出填充:
=ARRAYFORMULA(IF(COUNTIFS(A:A,A:A,ROW(A:A),"<="&ROW(A:A))=1,"Unique","Duplicated"))
如果仅需要处理指定范围(比如A1~A1000),可以调整为性能更优的写法:
=ARRAYFORMULA(IF(ROW(A1:A1000)>COUNTA(A1:A1000),"",IF(COUNTIFS(A1:A1000,A1:A1000,ROW(A1:A1000),"<="&ROW(A1:A1000))=1,"Unique","Duplicated"))
Excel 365 / Excel 2021
支持动态溢出数组,输入公式后自动填充对应范围:
=BYROW(ROW(A1:A1000),LAMBDA(r,IF(COUNTIF(A$1:INDEX(A:A,r),INDEX(A:A,r))=1,"Unique","Duplicated")))
如果需要自适应已填数据范围,可以调整为:
=BYROW(ROW(A1:INDEX(A:A,COUNTA(A:A))),LAMBDA(r,IF(COUNTIF(A$1:INDEX(A:A,r),INDEX(A:A,r))=1,"Unique","Duplicated")))
旧版Excel(无LAMBDA/动态溢出功能)
- 先选中你要填充结果的整段范围(比如B1~B1000)
- 在公式栏输入以下公式
- 按
Ctrl+Shift+Enter组合键激活数组公式即可
=IF(COUNTIF(A$1:INDEX(A:A,ROW(A1:A1000)),A1:A1000)=1,"Unique","Duplicated")
- 所有写法均完全对齐原下拉公式的计算逻辑,不存在结果差异
- 建议根据实际数据行数调整公式中的范围参数,避免全列计算占用多余性能
内容的提问来源于stack exchange,提问作者User-15895
相关产品推荐
相关产品推荐

