You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将标记唯一/重复值的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/动态溢出功能)

  1. 先选中你要填充结果的整段范围(比如B1~B1000)
  2. 在公式栏输入以下公式
  3. 按Ctrl+Shift+Enter组合键激活数组公式即可
=IF(COUNTIF(A$1:INDEX(A:A,ROW(A1:A1000)),A1:A1000)=1,"Unique","Duplicated")

  • 所有写法均完全对齐原下拉公式的计算逻辑,不存在结果差异
  • 建议根据实际数据行数调整公式中的范围参数,避免全列计算占用多余性能

内容的提问来源于stack exchange,提问作者User-15895

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:36:02