2

我的Column A

Apple
Orange
Apple
Aple
Mango

Column B

Apple
Mango
Apple
Mango
Mango

Column C

Apple
Apple
Apple
Apple
Apple

要在单个列(如 A 列)上显示最重复的名称,我使用此代码-

=INDEX(A1:A5,MODE(IF(A1:A5<>0,MATCH(A1:A5,A1:A5,0))))

代码返回 col.A 重复次数最多的名称:Apple

但是该代码仅适用于单列。在使用三列时它不起作用。我应该怎么办?我试图改变A1: C5,但它不起作用。

4

3 回答 3

1

这个“数组公式”将获得最多重复的文本

=INDIRECT("R"&TEXT(MIN(IF(COUNTIF(A1:C5,A1:C5)=MAX(COUNTIF(A1:C5,A1:C5)),ROW(A1:C5)*1000+COLUMN(A1:C5))),"0\C000"),0)

CTRL+ SHIFT+确认ENTER

这将适用于最多 999 列的范围 - 如果有关系,它只会给出第一个,首先在每一行上工作

于 2013-06-05T22:24:27.867 回答
0

尝试这个:

Sub MostDupesInRange()
    Dim ws As Worksheet
    Dim rng As Range
    Dim cell As Range
    Dim dupes As Long
    Dim maxDupes As Long
    Dim dupeWord As String
    Dim dupeTie As Boolean

    Set ws = ThisWorkbook.Sheets("Sheet1")
    Set rng = ws.Range("A1:D8")

    For Each cell In rng
        dupes = Application.WorksheetFunction.CountIf(rng, cell)
        If dupes > maxDupes Then
            maxDupes = dupes
            dupeWord = cell.Value
            dupeTie = False
        End If
        If dupes = maxDupes And InStr(1, dupeWord, cell.Value) = False Then
            dupeWord = dupeWord & ", " & cell.Value
            dupeTie = True
        End If
    Next cell
    If dupeTie = False Then MsgBox dupeWord & "" _
        & "appears in the range " & maxDupes & " times."
    If dupeTie = True Then MsgBox "The values (" & _
        dupeWord & ") appear in the range " & maxDupes & " times."
End Sub

注意:这还将检测重复次数最多的值是否存在平局。我最初的答案没有包括这个,但是让我不完整让我很恼火。

于 2013-06-05T21:38:58.157 回答
0

这是和想法。

您找到每列中重复次数最多的单词并将结果放入结果列中。所以重复次数最多的单词结果column A是 in column D row 1,重复次数最多的单词结果column B是 in column D row 2,重复次数最多的单词结果column C是 in column D row 3。然后,您在 中找到重复次数最多的单词column D,从而为您提供所有列中重复次数最多的单词。

或者您可以使用PowerShell 脚本

于 2013-06-05T21:09:26.100 回答