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

Excel中存在相同故障数量时,如何正确提取每日Top3故障类型?

解决VLOOKUP提取前三故障类型时重复显示同类型的问题

我太懂这个坑了——当多个故障类型当日发生数一模一样时,VLOOKUP只会死死盯着第一个匹配项输出,完全不搭理其他同数值的类型,而且网上常见的COUNTIF固定值方法,确实没法适配每日故障数变动的场景。下面给你两个实战好用的动态解决方案:

方案1:适配所有Excel版本的INDEX+MATCH动态排名法

假设你的故障类型存放在A2:A10区域,当日故障数所在列是B2:B10(可以根据日期动态切换列,比如用OFFSET或者直接引用当日列标)。要提取排名前三的故障类型,在空白单元格(比如D2)输入以下公式:

=IFERROR(INDEX($A$2:$A$10, MATCH(LARGE($B$2:$B$10 + ROW($B$2:$B$10)/1000, ROW(A1)), $B$2:$B$10 + ROW($B$2:$B$10)/1000, 0)), "")

然后下拉公式到D4即可。

原理说明:

给每个故障数加上行号的千分之一(这个数值足够小,不会影响原故障数的大小排序),这样即使两个故障数完全相同,因为行号不同,最终的组合值会有微小差异。LARGE函数就能按这个组合值排序,MATCH就能精准定位到不同行的故障类型,不会重复抓取同一个。

方案2:Excel 365/2021专属的动态数组简化法

如果你的Excel版本支持动态数组(365或2021及以后),用FILTER+TAKE的组合会更简洁,而且不需要下拉公式,自动溢出结果。在D2输入:

=IFERROR(TAKE(FILTER($A$2:$A$10, $B$2:$B$10 >= LARGE($B$2:$B$10, MIN(3, COUNTA($B$2:$B$10)))), 3), "")

原理说明:

  1. LARGE($B$2:$B$10, MIN(3, COUNTA($B$2:$B$10)))先算出当日排名第三的故障数(如果当日故障类型不足3个,就取最后一个的数值);
  2. FILTER筛选出所有故障数≥这个数值的类型;
  3. TAKE取前3个结果,自动适配同数值的多个类型。

额外提示

如果需要切换不同日期的列,只需要把公式里的$B$2:$B$10替换成当日对应的列区域即可,比如10月15日的列是F2:F10,就改一下引用,公式会自动重新计算。

内容的提问来源于stack exchange,提问作者André Silva

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.01 00:59:06