买球的app下载软件
买球的app下载软件介绍 你的位置:买球的app下载软件 > 买球的app下载软件介绍 >

获取出现次数最多的文本,用它就对了!|Excel180

发布日期:2024-11-04 13:14    点击次数:163

小伙伴们大家好,今天来研究众数问题。啥是众数呢?它是指一组数据中出现次数最多的数值。Excel内置函数 MODE 和 MODE.MULT 可以轻松帮我们找到一组数据中出现次数最多那个数。如果有多个出现次数相同的数字,MODE函数只能找到先出现的那个,而MODE.MULT函数能够以数组的形式列出所有数字。如下图所示:

图片

数字 6 和 9 出现次数是相同的,都是5次。由于6是先出现的,所以MODE函数的结果只有6这一个数字。

图片

而MODE.MULT函数则会按先后顺序分别列出两个出现次数最多的数字。

图片

有时我们希望找出一组文本数据中哪个文本出现次数最多,这两个内置函数就歇菜了。于是我就搞了一个自定义函数,帮大家轻松解决这个问题。函数名称:CS函数参数:

图片

1、文本数据所在范围范围可以是多行多列。案例中我们选择了B12:D15区域。2、分隔符如果多个文本出现次数相同,函数也都会罗列出来,并可以自定义分隔符。案例中我们使用竖线作为分隔符,分隔符需要用英文输入法下的双引号引起来。还不知道如何使用这个自定义函数?跟着下面的步骤来肯定能学会。一、导入代码直接复制下面的代码到VBE编辑器中,具体操作参见动图演示:

图片

进入VBE编辑器的快捷键:ALT+F11, 如果按下快捷键无效,请按下FN键后再尝试。代码要在模块里才能生效,因此需要先新建模块。代码如下:

Function CS(rng As Range, 分隔符 As String)Dim d As Object, arr, brr, crr, str As String, i As Long, j As Long, k As Long, n As LongSet d = CreateObject('scripting.dictionary')arr = rngFor i = 1 To UBound(arr)    For j = 1 To UBound(arr, 2)        If Not IsEmpty(arr(i, j)) Then            If d.exists(arr(i, j)) Then                d(arr(i, j)) = d(arr(i, j)) + 1            Else                d.Add arr(i, j), 1            End If        End If    Next jNext ibrr = d.keyscrr = d.itemsFor n = 0 To d.Count - 1    If d(brr(n)) > k Then        k = d(brr(n))        str = brr(n)    ElseIf d(brr(n)) = k Then        str = str & 分隔符 & brr(n)    End IfNext nCS = strEnd Function

二、保存需要将工作簿保存为启动宏的工作簿,这样自定义函数代码不会丢失,便于函数后期的再次使用和更改。

图片

三、函数测试做完前两个步骤,就能像使用内置函数一样使用这个自定义函数啦!这里我们以下表为例,对函数进行测试。

图片

每个项目有15个评委,每个评委选出自己心目中的最佳人选,现在我们需要统计每个项目得票数最多的人。得票数相同的并列显示,并用竖线分隔。请参见动图演示:

图片

公式:=cs(B3:P3,'|')ok, 函数测试没问题,可以放心使用啦!我们在平时工作中,如果某些问题无法用内置函数解决,或者用内置函数解决特别复杂,不妨用VBA代码自己尝试做一个自定义函数,让工作更加简单。Excel学员群的小伙伴可以在群里下载配套练习文件研究学习。希望今天的分享对大家的工作有所帮助,我们下期再见! 本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报。

上一篇:没有了