基于UNIQUE函数结果按COUNTIF计数排序的Excel公式需求
自动按事件次数排序州名的Excel公式
假设你的原始州名数据在A2:A区域(表头为A1,数据从A2开始),以下两种动态数组公式都能实现按事件出现次数降序自动排序,且数据源更新时结果自动同步:
方法1:用SORTBY(直观易读)
直接将不重复州名和对应次数关联后排序:
=SORTBY(UNIQUE(A2:A), COUNTIF(A2:A, UNIQUE(A2:A)), -1)
UNIQUE(A2:A):提取不重复的州名列表COUNTIF(A2:A, UNIQUE(A2:A)):计算每个州的事件出现次数-1:指定按次数降序排列(改为1则升序)
如果原始数据存在空白单元格,可添加过滤排除空白:
=SORTBY(FILTER(UNIQUE(A2:A), UNIQUE(A2:A)<>""), COUNTIF(A2:A, FILTER(UNIQUE(A2:A), UNIQUE(A2:A)<>"")), -1)
方法2:用SORT+CHOOSE(生成带次数的两列结果)
如果需要同时显示州名和对应次数,用这个公式会生成两列数据,按次数降序排列:
=SORT(CHOOSE({1,2}, UNIQUE(A2:A), COUNTIF(A2:A, UNIQUE(A2:A))), 2, -1)
CHOOSE({1,2}, ...):将州名和次数合并为一个二维数组(第一列州名,第二列次数)SORT(..., 2, -1):指定按数组的第2列(次数)降序排序
如果只需要州名列,用INDEX提取第一列即可:
=INDEX(SORT(CHOOSE({1,2}, UNIQUE(A2:A), COUNTIF(A2:A, UNIQUE(A2:A))), 2, -1),,1)
注意事项
- 以上公式仅支持Excel 365/2021及以后版本(需具备动态数组功能)
- 数据源更新后,公式结果会自动刷新,无需手动操作
内容的提问来源于stack exchange,提问作者user23277368
相关产品推荐
相关产品推荐

