You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Google Sheets中生成出现频率最高的十大姓名及其出现次数?

解决Google Sheets提取前10高频姓名的问题

我完全懂你这种找了一堆方案却在Google Sheets里跑不通的 frustration!之前ExcelJet的那套逻辑确实没法直接搬过来,不过Google Sheets有自己专属的函数组合,帮你搞定提取前10高频姓名+对应次数的需求,下面给你两种亲测有效的方案:

方案一:用QUERY函数一步到位(最简洁)

假设你的姓名列表在Sheet1的A列(从A2开始,A1是表头),想要把结果放到Sheet2里:

  1. Sheet2的A1单元格输入姓名,B1输入出现次数(自己手动加表头)
  2. Sheet2的A2单元格粘贴以下公式,按回车就能直接生成完整的前10高频列表:
=QUERY(Sheet1!A2:A, "SELECT Col1, COUNT(Col1) WHERE Col1 IS NOT NULL GROUP BY Col1 ORDER BY COUNT(Col1) DESC LIMIT 10", 0)

公式解释:

  • SELECT Col1, COUNT(Col1):选择姓名列,同时统计每个姓名的出现次数
  • WHERE Col1 IS NOT NULL:过滤掉空单元格,避免统计空白值
  • GROUP BY Col1:按姓名分组计算次数
  • ORDER BY COUNT(Col1) DESC:按次数从高到低排序
  • LIMIT 10:只保留前10条结果
  • 最后一个参数0:表示数据源(Sheet1的A列)没有表头,和我们手动加的表头匹配

方案二:用UNIQUE+COUNTIF+SORTN组合(更灵活)

如果想要分步控制或者需要单独调整排序逻辑,可以用这套组合:

  1. Sheet2的A2单元格输入公式提取排序后的前10姓名:
=SORTN(UNIQUE(FILTER(Sheet1!A2:A, Sheet1!A2:A<>"")), 10, 2, COUNTIF(Sheet1!A2:A, UNIQUE(FILTER(Sheet1!A2:A, Sheet1!A2:A<>""))), FALSE)
  1. Sheet2的B2单元格输入公式对应统计次数,然后下拉到B11:
=COUNTIF(Sheet1!A2:A, A2)

公式解释:

  • FILTER(Sheet1!A2:A, Sheet1!A2:A<>""):先过滤掉空单元格
  • UNIQUE(...):提取不重复的姓名列表
  • SORTN(...,10,2,COUNTIF(...),FALSE):按姓名的出现次数降序排序,取前10条结果

额外注意事项

如果你的姓名列表存在大小写差异(比如"Alice"和"alice")或者首尾空格(比如"张三 "和"张三"),可以用TRIM+LOWER统一格式,避免统计错误,比如把公式里的Sheet1!A2:A替换成TRIM(LOWER(Sheet1!A2:A))

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

火山引擎 最新活动