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

ただし、そのコードは単一の列に対してのみ正常に機能します。3列で作業している間は機能しません。私は何をすべきか?変更しようとしまし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 に答える