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

如何结合XLOOKUP与MODE函数返回出现频率最高的结果?

解决XLOOKUP结合MODE返回#N/A并获取高频匹配结果的问题

问题原因

你之前用=MODE(XLOOKUP(A1,A:A,B:B))报错,核心原因是XLOOKUP默认只返回首个匹配的单个值,而非所有匹配结果组成的数组。MODE函数需要处理一组数据才能计算众数,单个值无法触发有效计算,因此返回#N/A。

解决方法

根据你的Excel版本,选择对应公式:

1. Excel 365/2021(支持动态数组)

直接用FILTER函数提取所有匹配的B列值,再嵌套MODE计算众数:

=MODE(FILTER(B:B,A:A=A1))
  • 原理:FILTER(B:B,A:A=A1)会返回A列中所有等于A1的行对应的B列值(比如你例子里的Apple、Apple、Pear、Banana、Orange、Apple),MODE直接计算这组数据的众数。

2. 旧版Excel(不支持动态数组)

使用数组公式,通过IF函数筛选匹配值后计算众数:

=MODE(IF(A:A=A1,B:B))

输入公式后必须按Ctrl+Shift+Enter完成数组公式的确认,Excel会自动在公式前后添加{}(手动输入无效)。

补充说明

  • 如果存在多个出现频率相同的众数(比如Apple和Pear各出现3次),MODE会返回这组数据中第一个出现的众数;
  • 如果所有匹配值出现次数都为1,MODE会返回#N/A,此时可结合IFERROR处理,比如=IFERROR(MODE(FILTER(B:B,A:A=A1)),XLOOKUP(A1,A:A,B:B)),当无众数时返回首个匹配结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 09:15:02