在Excel中查找最常见的数字组合

时间:2019-02-22 11:26:06

标签: excel vba numbers

我是这个论坛的新手,但是在浏览了几条与我正在搜索的帖子类似的内容之后,我决定自己发布一个帖子,因为已经发布的帖子显然无法解决我的问题。但是,如果发布了适用于我的情况的代码,请告诉我应该做些什么以使其起作用并道歉,这是我的新手。

我有一个工作表,其数字集的范围从1到90,每行有5个随机数,例如:23 34 56 02 10

我想在Excel中找到的是我拥有的多行中3或4个数字的最常见组合,例如:

23 34 56 02 10

10 52 34 23 02

56 02 10 22 33

42 05 08 76 51

23 56 02 10 15

88 86 56 10 03

依此类推...意味着在此简短示例中,最常见的4数字组合为23 56 02 10

当然,基于此,我必须分析的数据始终以五组为一组,但达到1000行以上。

是否存在我可以在VBA中使用的代码或可以用来帮助我确定每行中相同数字出现的频率的公式?

我已经使用直方图对数字进行了独立处理,但是现在我希望看到类似数字确实一起出现的组合数量。

在此先感谢您的帮助。我是个新手,所以如果您可以逐步解释它,那么我将不胜感激。

2 个答案:

答案 0 :(得分:0)

结果将粘贴到工作表2中排序。选择显示所有值的原因是,在许多情况下,您的数字具有相同的重复次数。最后,我认为您做错了,因为重复次数最多的四个数字分别是23、34、56、2。

尝试:

Option Explicit

Sub test()

    Dim LastRowS1A As Long, LastRowS2A As Long, Times As Long, i As Long, y As Long
    Dim str1 As String, str2 As String

    LastRowS1A = Sheet1.Cells(Sheet1.Rows.Count, "E").End(xlUp).Row

    For i = 1 To LastRowS1A

        str1 = Sheet1.Range("A" & i).Value & " " & Sheet1.Range("B" & i).Value & " " & Sheet1.Range("C" & i).Value & " " & Sheet1.Range("D" & i).Value & " " & Sheet1.Range("E" & i).Value

        LastRowS2A = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row

        If Application.WorksheetFunction.CountIf(Sheet2.Range("A1:A" & LastRowS2A), str1) = 0 Then

            Times = 1

            For y = i + 1 To LastRowS1A

                str2 = Sheet1.Range("A" & y).Value & " " & Sheet1.Range("B" & y).Value & " " & Sheet1.Range("C" & y).Value & " " & Sheet1.Range("D" & y).Value & " " & Sheet1.Range("E" & y).Value

                If str1 = str2 Then
                    Times = Times + 1
                End If

            Next y

            Sheet2.Range("A" & LastRowS2A + 1).Value = str1
            Sheet2.Range("B" & LastRowS2A + 1).Value = Times

        End If

    Next i


    LastRowS2A = Sheet2.Cells(Sheet2.Rows.Count, "A").End(xlUp).Row

    Sheet2.Range("A2:B" & LastRowS2A).Sort Key1:=Sheet2.Range("B1"), Order1:=xlDescending, Header:=xlNo

结束子

第1页:

enter image description here

第2页

enter image description here

答案 1 :(得分:0)

enter image description here

enter image description here

p <- plot_ly()
p$sizingPolicy$padding <- "0"