You need to enable JavaScript to run this app. Google Sheets实现列唯一值提取及出现次数统计的公式
优惠活动
大模型
产品
解决方案
定价
更多

Google Sheets实现列唯一值提取及出现次数统计的公式

实现Google Sheets唯一值+对应出现次数的适配方案

优先使用QUERY函数的一步实现方案

QUERY自带分组聚合能力,完全不需要你之前拼接、拆分、转置的前置操作,单公式即可直接输出结构化的「唯一值-出现次数」两列结果,公式如下:
=QUERY(C1:C98, "SELECT C, COUNT(C) WHERE C IS NOT NULL GROUP BY C LABEL C '唯一值', COUNT(C) '出现次数'", 1)
公式特性:

  • 自动过滤C列空白单元格,不会把空值判定为独立统计分组
  • 内置聚合逻辑一次性完成唯一值提取、计数两个步骤,无需嵌套其他辅助函数
  • 支持通过LABEL子句自定义表头,输出结果可直接用于展示或后续计算

适配你现有横向唯一值列表的改造方案

你目前已经通过=TRANSPOSE(SPLIT(JOIN(",",UNIQUE(C1:C98)),","))生成了横向排布的唯一值序列,不需要推翻现有逻辑,搭配数组运算即可同步获取每个值的对应次数:

  • 若唯一值已生成在第1行(从A1位置开始横向排列),直接在第2行对应位置输入公式:
    =ARRAYFORMULA(COUNTIF($C$1:$C$98, A1:1))
  • 此前你尝试用CONCATENATE无法实现批量操作的核心原因:CONCATENATE属于单值逐格运算的函数,不支持遍历数组内的每个元素做批量计算。用ARRAYFORMULA包裹COUNTIF后,会自动对横向排列的每个唯一值匹配计算出现次数,无需逐格下拉填充。

单公式输出带计数标注的合并列表

如果需要将唯一值和出现次数合并为单条展示文本(比如格式为橘子(5次)),可直接改造你原有拼接拆分的公式:
=ARRAYFORMULA(TRANSPOSE(SPLIT(JOIN(",",UNIQUE(C1:C98)&"("&COUNTIF(C1:C98,UNIQUE(C1:C98))&"次)"),",")))
公式可直接生成纵向的带计数标注列表,无需单独拆分值与计数列。

实用注意事项

  • 使用QUERY或COUNTIF统计时,若原始C列存在首尾空格、大小写不一致的同值文本,会被判定为不同的唯一值,建议先用TRIM、UPPER类函数做文本清洗后再统计
  • 引用原始数据范围时一定要加绝对引用标记($C$1:$C$98),避免数组填充过程中引用范围发生偏移

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.08 09:06:03