【问题标题】:Most Common Value In Table Multiple Columns ExcelExcel表格多列中最常见的值
【发布时间】:2018-12-12 09:39:34
【问题描述】:

我有大约 4,000 行文本数据,共 21 列。下面的公式将返回单列中最常见的值:

{=INDEX(E6:E3876,MODE(IF(E6:E3876"",MATCH(E6:E3876,E6:E3876,0))))}

但是,我需要检查 E6:Y4000 范围内的所有单元格。 Excel 中有没有一种方法可以返回跨多列的表中最常见的非空白文本值?

【问题讨论】:

    标签: excel match formula mode


    【解决方案1】:

    又快又脏的custom function 会比任何公式都快得多:

    Function Freq(rng As Range) As String
    
        Dim cll As Range
        Dim lngCount As Long
        Dim lngMax As Long
        Dim str As String
    
        Set dic = CreateObject("scripting.dictionary")
    
        On Error Resume Next
    
        For Each cll In rng
    
            If cll.Value <> "" Then
                dic(cll.Value) = dic(cll.Value) + 1
                lngCount = dic(cll.Value)
                If lngCount > lngMax Then
                    lngMax = lngCount
                    str = cll.Value
                End If
            End If
        Next
    
        On Error GoTo 0
    
        Freq = str
    
    End Function
    

    【讨论】:

    • 太棒了,完全按照预期工作......现在我将如何调整这个函数来收集第二个最常见的值、第三个最常见的值等等?
    猜你喜欢
    • 2016-11-16
    • 1970-01-01
    • 2017-03-28
    • 2018-06-07
    • 1970-01-01
    • 2017-04-21
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    相关资源
    最近更新 更多