求Excel公式:统计数字字符串第3-5位的最常见3个数字(顺序无关)
提取指定位置数字并统计频率TOP3的方法
方法一:辅助列+基础函数(兼容所有Excel版本)
适合无动态数组功能的旧版Excel,分步操作:
- 拆分目标数字:假设数据在A列,右侧插入3个辅助列(B、C、D),分别输入公式并下拉填充:
- B1:
=MID(A1,3,1)提取第3位数字 - C1:
=MID(A1,4,1)提取第4位数字 - D1:
=MID(A1,5,1)提取第5位数字
- B1:
- 统计数字频率:在空白列(如E列)手动输入0-9十个数字(E1到E10依次为0、1、2…9),F1输入公式
=COUNTIF($B:$D,E1),下拉到F10得到每个数字的总出现次数。 - 提取TOP3数字:在G1-G3分别输入公式,得到频率最高的三个数字:
- G1:
=INDEX(E:E,MATCH(LARGE(F:F,1),F:F,0)) - G2:
=INDEX(E:E,MATCH(LARGE(F:F,2),F:F,0)) - G3:
=INDEX(E:E,MATCH(LARGE(F:F,3),F:F,0))
- G1:
方法二:动态数组函数(Excel 365/2021及以上版本)
单公式直接生成结果,无需辅助列:
=TAKE(SORT(CHOOSECOLS(HSTACK(SEQUENCE(10,,0),BYROW(SEQUENCE(10,,0),LAMBDA(x,SUM(--ISNUMBER(SEARCH(x,MID(A:A,3,3))))))),2,-1),3,1)
逻辑说明:
MID(A:A,3,3)批量提取所有单元格的第3-5位字符串SEARCH(x,...)检查数字x在目标字符串中的出现情况SUM(--ISNUMBER(...))统计数字x的总出现次数HSTACK将0-9数字与对应次数组合成二维数组SORT按次数降序排序TAKE提取前3行的数字列,得到TOP3结果
方法三:Power Query批量处理(适合大量数据)
数据量较大时更高效:
- 选中数据列,点击「数据」→「从表格/区域」,将数据导入Power Query编辑器。
- 点击「添加列」→「自定义列」,输入公式:
=Text.Middle([列1],2,3)(Power Query索引从0开始,第3位对应索引2,取3个字符)。 - 选中新列,点击「拆分列」→「按字符数」,设置每个字符拆为一列,拆成3列。
- 选中拆分后的3列,点击「转换」→「逆透视列」,仅保留「值」列。
- 选中「值」列,点击「转换」→「分组依据」,分组列选「值」,新列名设为「计数」,操作选「行计数」。
- 按「计数」列降序排序,保留前3行。
- 点击「关闭并上载」,将结果导入Excel。
内容的提问来源于stack exchange,提问作者charliem
相关产品推荐
相关产品推荐

