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

如何在Excel列中提取出现频率第二高的文本?

提取多词文本列中出现频率第二高的字符串

先解决核心问题:文本格式不一致导致的计数误差

你之前得到错误结果,很大概率是因为数据里的标点/格式不统一(比如CMBS和CMBS,被COUNTIF判定为不同值)。先新增辅助列B,统一格式:

=IF(RIGHT(A1,1)=",",LEFT(A1,LEN(A1)-1),A1)

这个公式会去掉单元格末尾的逗号,确保同一文本的写法一致。如果还有其他格式问题(比如ABS, CMBS和ABS,CMBS),可以用:

=SUBSTITUTE(A1, ", ", ",")

把所有逗号加空格替换成纯逗号,统一多词组合的分隔格式。


方法1:Excel 365/2021(动态数组,一步到位)

直接用以下公式提取第二高频文本:

=INDEX(UNIQUE(B:B),MATCH(LARGE(COUNTIF(B:B,UNIQUE(B:B)),2),COUNTIF(B:B,UNIQUE(B:B)),0))

公式拆解:

  • UNIQUE(B:B):提取B列所有唯一的文本值(包括单/多词组合)
  • COUNTIF(B:B,UNIQUE(B:B)):计算每个唯一值的出现次数
  • LARGE(...,2):取出次数中的第二高值
  • MATCH+INDEX:找到第二高次数对应的文本

如果有多个文本并列第二高,要返回所有结果的话,用:

=FILTER(UNIQUE(B:B),COUNTIF(B:B,UNIQUE(B:B))=LARGE(COUNTIF(B:B,UNIQUE(B:B)),2))

方法2:旧版Excel(非动态数组)

  1. 提取唯一值:复制B列到C列,选中C列→「数据」→「删除重复值」
  2. 计算出现次数:在D1输入=COUNTIF(B:B,C1),下拉填充到所有唯一值行
  3. 提取第二高频文本:
    先找第二高的次数:=LARGE(D:D,2)
    再匹配对应文本:=INDEX(C:C,MATCH(LARGE(D:D,2),D:D,0))
    (若有多个并列第二高,用数组公式=INDEX(C:C,SMALL(IF(D:D=LARGE(D:D,2),ROW(D:D)-ROW(D1)+1),ROW(A1))),按Ctrl+Shift+Enter确认后下拉)

为什么你之前的方法失效?

  • MODE函数仅对数值型数据友好,对文本只能返回第一个出现频率最高的结果,无法处理多词组合的排序
  • 未统一文本格式导致COUNTIF计数错误,把CMBS和CMBS,当成不同值,误判了频率
  • 单纯的INDEX+MATCH没有结合LARGE函数筛选第二高的频率,导致返回了错误的结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 01:18:14