Google Sheets单公式实现唯一值提取、计数、多规则排序及指定词排除
Google Sheets 单公式实现列数据去重计数、多规则排序与指定词过滤
可用公式
如果你的原始列表数据存储在A列,直接将以下公式粘贴到空白区域的首个单元格(例如B2),公式会自动溢出全部计算结果,无需手动下拉填充:
=LET( clean_data, FILTER(A:A, A:A<>"", A:A<>"ITEMS"), unique_list, UNIQUE(clean_data), count_arr, MAP(unique_list, LAMBDA(x, COUNTIF(clean_data, x))), SORT(HSTACK(unique_list, count_arr), 2, FALSE, 1, TRUE) )
逻辑说明
- 数据清洗层:通过
FILTER提前剔除空单元格、指定排除的"ITEMS"词汇,从源头减少无效计算 - 去重层:用
UNIQUE提取清洗后数据的全部唯一值,无重复条目 - 计数层:通过
MAP+COUNTIF一次性批量完成所有唯一值的出现次数统计,避免逐单元格写COUNT公式带来的效率低下、计数错位问题 - 排序层:通过
SORT实现双维度排序规则:优先按第二列的计数值降序排列,计数值相同的条目按第一列的文本内容升序(即字母顺序)排列,最后通过HSTACK拼接值和计数结果直接输出
自定义调整方法
- 若原始数据不在A列,将公式中所有
A:A替换为实际数据所在列/固定数据范围即可,使用固定范围(例如A2:A2000)比整列引用计算速度更快 - 若需要额外排除更多指定词汇,在
FILTER的判断条件中追加对应规则即可,例如需要同时排除"TEST"时,将FILTER部分修改为FILTER(A:A, A:A<>"", A:A<>"ITEMS", A:A<>"TEST") - 若需要调整同计数下的文本排序规则为倒序,将SORT函数最后一个参数
TRUE改为FALSE即可
该方案为纯数组运算,相比拆分两列分别处理、逐单元格计数的旧方案,没有冗余计算步骤,不会出现条目和计数匹配错位的问题,原始数据更新时结果会自动同步。
内容的提问来源于stack exchange,提问作者Verminous
相关产品推荐
相关产品推荐

