2013-06-05 50 views
2

Column AExcel如何顯示一個範圍內最重複的名稱?

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但它不工作。

+0

您是否想知道每列最重複的值,還是您想要範圍內最重複的值? – AxGryndr

+0

@AxGryndr:範圍。在該範圍內最重複的值。在此先感謝您的幫助。 – netmaster

回答

0

這是和想法。

您可以找到每列最重複的單詞並將結果放入結果列中。所以column A最重複的單詞結果將在column D row 1column B的最重複單詞結果將在column D row 2中,並且column C的最重複單詞結果將在column D row 3中。然後在column D中找到最重複的單詞,從而爲您提供所有列中重複最多的單詞。您可以使用a PowerShell script

+0

這實際上不起作用,因爲範圍中的大多數值並不總是列中最大的值。 – AxGryndr

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 

注:這也將檢測是否存在與最值的重複一條領帶。我最初的回答並不包括這一點,但它讓我感到不快,讓它不完整。

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列 - 如果有領帶,它只會給第一個,首先在每一行工作

相關問題