Excel中按ID号求对应地区代码众值的实现方法咨询
按ID分组求地区代码众值的Excel解决方案
嘿,这个需求我经常碰到,就是要给每个ID单独找出对应的地区代码众值对吧?下面给你适配不同Excel版本的方案,你按需选用:
方案1:适用于Excel 365/2021(支持动态数组)
这个版本用动态数组公式超省心,假设你的ID列是A列,地区代码列是B列,在对应ID的结果单元格(比如C2)输入下面的公式,下拉就能自动适配每个ID:
=MODE.SNGL(FILTER(B:B,A:A=A2))
原理说明
FILTER(B:B,A:A=A2):筛选出当前行ID对应的所有地区代码,只保留和当前ID匹配的行MODE.SNGL:从筛选后的结果里提取出现次数最多的那个值(众值)
方案2:适用于旧版Excel(不支持动态数组)
如果你的Excel版本比较老,就得用数组公式,输入公式后必须按Ctrl+Shift+Enter确认(不能直接回车),公式如下:
=INDEX(B:B,MODE(IF(A:A=A2,MATCH(B:B,B:B,0))))
原理说明
IF(A:A=A2,MATCH(B:B,B:B,0)):先判断每行ID是否和当前ID一致,一致的话返回该地区代码在B列的首次出现位置,不一致则返回FALSEMODE:找出这些位置里出现次数最多的那个(对应出现次数最多的地区代码)INDEX:根据这个位置返回对应的地区代码
额外小贴士
- 建议把公式里的整列引用(
A:A、B:B)换成实际的数据范围,比如A2:A100、B2:B100,这样公式运行更快,还能避免计算空行带来的问题 - 如果某个ID下的地区代码没有绝对众值(比如两个值出现次数相同),两个方案都会返回第一个出现的那个值
内容的提问来源于stack exchange,提问作者Quotennial
相关产品推荐
相关产品推荐

