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

Google Sheets:统计指定值出现的唯一列数

统计Google Sheets中各值出现的唯一列数

嘿,这个需求我熟!要算出每个值在多少不同的列里出现过(不管同一列里出现多少次都只算1次),我给你两种实用的方法,直接套用就行:

方法1:一键生成完整统计结果(数组公式)

如果你想一次性得到所有值的统计结果,不用手动下拉,可以在空白单元格(比如F1)输入这个公式:

=QUERY(FLATTEN(QUERY(TRANSPOSE(A1:D5),"SELECT COUNT(Col1) WHERE Col1 IS NOT NULL GROUP BY Col1 LABEL COUNT(Col1) ''")), "SELECT Col1, COUNT(Col1) GROUP BY Col1 LABEL Col1 '姓名', COUNT(Col1) '唯一列数'")

公式逻辑拆解:

  • TRANSPOSE(A1:D5):先把原表格转置,让原来的每一列变成一行,这样我们就能按原列来处理数据
  • 内层QUERY:对转置后的每一行(也就是原表格的每一列),统计里面出现的所有值——只要某个值在这一列里出现过,就会被记录一次
  • FLATTEN:把内层QUERY的结果压成一列,这样每个值会对应它出现过的每一列的记录
  • 外层QUERY:对压扁后的列分组计数,最终就得到每个值对应的唯一列数

方法2:分步处理(更易理解)

如果你想更清晰地看到每一步的结果,可以分两步来:

  1. 提取所有唯一值:在F2单元格输入=UNIQUE(FLATTEN(A1:D5)),这会把表格里所有不重复的名字提取出来
  2. 统计每个值的唯一列数:在G2单元格输入这个公式,然后下拉填充到所有唯一值对应的行:
=SUMPRODUCT(--(MMULT(--(A1:D5=F2),SEQUENCE(ROWS(A1:D5),1,1,0))>0))

公式逻辑拆解:

  • A1:D5=F2:生成一个真假矩阵,每个单元格如果等于当前名字(F2)就是TRUE,否则是FALSE
  • --(...):把真假值转成1和0,方便计算
  • MMULT(..., SEQUENCE(...)):对每一列求和,得到每个列里当前名字出现的次数
  • >0:判断该列是否存在当前名字(只要出现过次数就大于0),得到一列真假值
  • --(...)再转成1和0,最后SUMPRODUCT求和,就是这个名字出现过的唯一列数

用你的例子测试的话,结果完全符合预期:Joe对应1列,Lisa对应3列,Jenny对应2列,Katie和John各对应1列~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 06:56:17