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

Excel多列去重计数调用UNIQUE函数返回#NAME?错误排查

错误原因
  • 函数用法错误:UNIQUE的作用是返回指定区域的去重值列表,本身不支持计数功能。该函数官方语法为UNIQUE(待去重数组, [按列去重逻辑值], [仅保留单次出现项逻辑值]),你在第二参数位置传入单条拼接的字段组合属于无效参数,函数无法正常识别计算。
  • 版本兼容问题:若使用Excel 2019及更早的永久授权版本,程序本身未内置UNIQUE动态数组函数,输入后会直接返回#NAME?错误。
正确实现方案

两种方案的计算结果均匹配需求:即统计每个iso3值对应的(iso3+cnum+country)不重复组合数,例如iso3为RUS时返回结果为2。

Excel 365/2021及以上支持动态数组的版本

在D2单元格输入以下公式,按回车后公式会自动向下溢出填充所有行结果,无需逐行编辑:

=COUNT(UNIQUE(FILTER($B$2:$B$13&"|"&$C$2:$C$13,$A$2:$A$13=A2)))

公式逻辑:

  1. 通过FILTER筛选出与当前行iso3值匹配的所有cnum、country字段组合,拼接时加入|作为分隔符,避免不同字段值无间隔拼接产生的内容歧义。
  2. 用UNIQUE对筛选出的字段组合去重。
  3. 用COUNT统计去重后的组合总数,即为当前iso3对应的不重复组合计数。

Excel 2019及更早版本兼容方案

在D2单元格输入以下公式,按下Ctrl+Shift+Enter三键确认数组公式输入,之后选中D2单元格向下拖拽填充到D13即可:

=SUMPRODUCT(($A$2:$A$13=A2)/COUNTIFS($A$2:$A$13,$A$2:$A$13,$B$2:$B$13,$B$2:$B$13,$C$2:$C$13,$C$2:$C$13))

公式逻辑:

  1. COUNTIFS逐行统计每一组三字段组合在整个数据区域内的出现次数。
  2. 对iso3与当前行一致的行,用1除以该组合的出现次数:同一组重复组合的所有行计算得到的分数相加总和恰好为1,重复项不会被累计计数。
  3. SUMPRODUCT对所有符合条件的计算值求和,最终得到去重后的组合数量。

内容的提问来源于stack exchange,提问作者CanaryTheBird

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 11:27:22