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

如何用COUNTIF处理数组并在单个单元格生成唯一值统计结果

解决方案

核心问题说明

原公式报错是因为COUNTIF的第一个参数仅支持单元格区域,无法直接处理内存数组。要在单个单元格完成统计+格式化,可通过LET整合多步逻辑,搭配TRIM(统一值格式)、SUMPRODUCT/GROUPBY(数组统计)、MAP(格式化输出)实现。

方案1:通用兼容版(适配多数Excel 365版本)

=LET(
    raw_result, {"2,05x0,7x0,6"," 2,05x0,7x0,6"," 2,05x0,7x0,6","2,05x1,1x0,6","2,05x0,7x0,6"," 2,05x0,7x0,6"},
    trimmed_result, TRIM(raw_result), // 去除元素前后空格,统一值的格式
    unique_vals, UNIQUE(trimmed_result), // 提取处理后的唯一值
    counts, BYROW(unique_vals, LAMBDA(val, SUMPRODUCT(--(trimmed_result=val)))), // 统计每个唯一值的出现次数
    formatted, MAP(counts, unique_vals, LAMBDA(c, v, c&"x"&v)), // 拼接成「次数x值」的格式
    formatted // 返回最终格式化数组
)

执行后会返回数组结果:{"5x2,05x0,7x0,6","1x2,05x1,1x0,6"},若需合并为单个文本,将最后一行改为TEXTJOIN(", ", TRUE, formatted)即可。

方案2:简洁高效版(需Excel 365最新版本,支持GROUPBY)

=LET(
    raw_result, {"2,05x0,7x0,6"," 2,05x0,7x0,6"," 2,05x0,7x0,6","2,05x1,1x0,6","2,05x0,7x0,6"," 2,05x0,7x0,6"},
    trimmed_result, TRIM(raw_result),
    grouped, GROUPBY(trimmed_result, trimmed_result, LAMBDA(v, COUNT(v)), 0), // 按值分组并统计数量
    formatted, MAP(INDEX(grouped,,2), INDEX(grouped,,1), LAMBDA(c, v, c&"x"&v)),
    formatted
)

GROUPBY可直接完成分组统计,逻辑更紧凑,结果与方案1一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:15:58