别急着说简单,我知道,很多人脑子里第一个蹦出来的就是那个叫 MODE 的函数。没错,=MODE(A1:A10),框个范围,回车,搞定。在学校里,老师教的也就这么多了。可你一旦踏入真正的职场,面对那些乱七八糟、充满陷阱的真实数据,你就会发现,这个MODE函数,简直就是个“天真派”,甚至可以说,它经常在撒谎。
举个最简单的栗子。你有一列销售数据,记录了这个月卖出去的商品价格:99, 129, 159, 99, 88, 129, 79。你想知道哪个价格是卖得最多的,也就是众数。好,你用了=MODE(数据区域),Excel很听话,给了你一个“99”。你高高兴兴地把这个“99元是最畅销价格”写进了报告。
但是,你瞎了吗?再仔细看看,那个“129”不也出现了两次吗?它和“99”一样,都是众数!可MODE这个老实巴交的函数,它只认第一个,它找到了“99”这个众数之后,就心满意足地收工了,把后面同样重要的“129”忘得一干二净。这种情况,在统计学上叫做“多众数”。如果你的报告只提一个,那不就是误导决策吗?老板要是根据你这个“唯一”的众数去备货,另一个爆款直接断货,这个锅谁来背?
所以,想在Excel里真正玩转 众数,光靠一个MODE是远远不够的。你得把工具箱里的其他家伙什儿也掏出来。
进阶玩法一:迎接众数“全家桶”—— MODE.MULT
幸好,微软的工程师们也意识到了MODE函数的局限性。于是在Excel 2010之后的版本里,他们给了一个升级版的武器:MODE.MULT。看名字就知道,MULT就是Multiple(多个)的意思,专门用来对付这种有多个众数的情况。
但这玩意儿的用法,在过去可是个小小的“仪式”。在比较旧的Excel版本里(大概是Office 365普及之前),它是一个“数组公式”。你不能像普通函数那样输完就回车。
操作是这样的:
1. 你得先估算一下,你的数据里大概有几个众数。比如你觉得可能有3个,那就先竖着选中3个空白单元格。
2. 然后在编辑栏里输入公式:=MODE.MULT(你的数据区域)。
3. 最关键的一步来了,也是当年区分Excel菜鸟和老鸟的一个小标志:按下 Ctrl + Shift + Enter!
当你按下这组神奇的快捷键后,你会看到编辑栏里的公式两边自动出现了一对大括号{},像这样:{=MODE.MULT(A1:A10)}。同时,你选中的那3个单元格里,就会依次显示出所有的众数——99、129。如果只有一个众数,那它就只显示一个,剩下的单元格会显示#N/A错误。
这个 Ctrl + Shift + Enter 的动作,感觉就像是给Excel下达了一个特殊的指令:“喂,别偷懒,给我把所有可能的结果都算出来,一个一个放好!”
当然,时代在进步。如果你现在用的是Microsoft 365或者比较新的Excel版本,那可就太幸福了。你只需要在任意一个单元格里输入=MODE.MULT(数据区域),然后潇洒地按下回车,Excel会自动“溢出”(Spill),把所有的众数结果竖着给你排列好,干脆利落,根本不需要那个三键组合。这叫“动态数组”,是新时代Excel的福音,简直不要太丝滑。
状况处理:如果根本没有众数呢?
还有一种让人挠头的情况。如果一堆数据里,每个数字都只出现了一次,比如:10, 20, 30, 40, 50。这在数学上意味着“没有众数”。这时候,你无论是用MODE还是MODE.MULT,Excel都会毫不留情地给你一个#N/A。
这个错误值,直接放在报表里,那叫一个扎眼,显得你特别不专业。怎么办?很简单,给它穿上一件“外套”——用 IFERROR 函数。
你可以这样写:=IFERROR(MODE(A1:A10), "无众数")
这个公式的意思就是,你先正常去计算MODE(A1:A10),如果能算出结果,那就显示结果;如果算不出来,出现了#N/A之类的错误,那就别显示那个丑陋的错误代码了,给我客气地显示“无众数”这三个字。这样一来,你的报表瞬间就变得清爽又体面。
终极挑战:文本的众数怎么算?
好了,数字的问题解决了。但现实世界里,更多时候我们要处理的不是数字,而是文本。比如,你想统计一份问卷调查里,“哪个城市”的受访者最多?或者,你想知道销售记录里,“哪款产品名称”出现的次数最多?
这时候你再用MODE或者MODE.MULT,它们会直接罢工,因为这两个函数天生就是为数字服务的,看见文本就头疼。
这才是真正考验Excel内功的时候了。这里要请出一套组合拳,通常是 INDEX + MATCH + COUNTIF 的王炸组合。
公式看起来有点吓人,但我们把它拆开来看,就像庖丁解牛:
=INDEX(数据区域, MATCH(MAX(COUNTIF(数据区域, 数据区域)), COUNTIF(数据区域, 数据区域), 0))
这串咒语一样的公式,同样需要用 Ctrl + Shift + Enter 来引爆(在旧版Excel中),新版Excel则可能直接出结果。
我们来翻译一下它到底在干嘛:
-
COUNTIF(数据区域, 数据区域): 这是核心的第一步。它是个侦察兵,负责遍历你的数据区域(比如一列城市名称),然后计算出每个城市名称在整个区域里出现了多少次。结果会是一个内存中的数组,比如{3, 2, 3, 1, 2, ...},代表第一个城市出现了3次,第二个出现了2次…… -
MAX(...):MAX函数是将军,它看着上面侦察兵送来的战报(那个次数数组),大手一挥,说:“哪个数字最大?把它给我找出来!”于是它就找到了那个最大的出现次数,比如“3”。 -
MATCH(MAX的结果, COUNTIF的结果, 0):MATCH函数是个精密的定位员。它拿着将军找到的“最大次数3”,再去侦察兵的战报里从头找,看这个“3”第一次出现是在第几个位置。0代表精确匹配。它会告诉你,“报告,在第1个位置!” -
INDEX(数据区域, MATCH的结果):INDEX函数是最终的执行官。它拿到了“第1个位置”这个指令,然后就去你原始的数据区域里,把排在第1位的那个城市名称给揪了出来。
整个流程串起来就是:先数数,再找最大次数,然后定位这个最大次数的位置,最后根据这个位置去原始数据里取货。一套操作行云流水,就把文本的众数给揪出来了。
当然,这套组合拳也有MODE函数的毛病,它也只能找出第一个文本众数。要找出所有的文本众数,那公式会变得更加复杂,可能需要用到更高级的数组技巧或者辅助列,那就是另一个故事了。
懒人福音:数据透视表
如果你看到上面那串公式已经两眼发昏,别怕,Excel还给你留了一条“懒人通道”—— 数据透视表 (Pivot Table)。
这玩意儿简直是数据分析的瑞士军刀。你只需要: 1. 选中你的数据区域。 2. 点击“插入” -> “数据透视表”。 3. 把你要统计的那个字段(比如“城市”或“产品名称”)拖到“行”区域。 4. 再把同一个字段拖到“值”区域。
瞬间,Excel就会给你生成一张汇总表,左边是所有不重复的项目,右边是每个项目的计数。你只需要对计数列降序排个序,排在最前面的那个,不就是你要找的 众数 吗?如果有好几个并列第一,你也能看得一清二楚。
这种方法,不用记函数,不用敲代码,拖一拖,拽一拽,结果就出来了。它不仅能找到众数,还能让你对整个数据的分布情况一目了然,非常直观。
结语
所以你看,“众数在Excel怎么算?”这个问题,答案远不止一个=MODE()那么简单。
从最基础的 MODE,到能处理多个众数的 MODE.MULT,再到处理错误值的 IFERROR,以及挑战文本众数的 INDEX+MATCH+COUNTIF 组合,最后还有万能的 数据透视表。
选择哪种方法,取决于你的数据,你的需求,以及你对Excel的理解深度。真正的数据高手,眼里看到的不是冷冰冰的单元格和公式,而是数据背后跳动的业务脉搏。而搞懂一个看似简单的“众数”,正是你从一个表格操作员,走向数据分析师的关键一步。
【说到众数,在Excel里怎么算?】相关文章:
在excel中怎么统计02-05
怎么让Excel表格变小02-05
又来了,又是这个要命的绿色小三角。02-05
excel if怎么嵌套函数02-05
怎么用excel制作图02-05
excel打印区域怎么调整02-05
说到众数,在Excel里怎么算?02-05
“怎么把Excel横过来?”02-05
excel怎么转换格式02-05
Excel表怎么算函数02-05
wps表格怎么换成excel02-05
用excel怎么制作图02-05