Excel:是否写入与特定值连接的列和行名称?

Excel:是否写入与特定值连接的列和行名称?,excel,Excel,我一直在试着为下一个问题写一个公式,但我从来没有把它弄错。因此: 我必须在2D数组中找到前n个值,并写下与该值相连的行和列名(没有重复项!)。例如,下面是一个数组: A B C D E F 1 Aron Jamie Matt Taylor Zedd 2 Aron - 5 7 6

我一直在试着为下一个问题写一个公式,但我从来没有把它弄错。因此:

我必须在2D数组中找到前n个值,并写下与该值相连的行和列名(没有重复项!)。例如,下面是一个数组:

           A        B       C       D        E        F
    1             Aron    Jamie    Matt   Taylor    Zedd
    2    Aron      -        5       7       6         8
    3    Jamie     5        -       2       4         3
    4    Matt      7        2       -       15        12
    5    Taylor    6        4       15      -         26
    6    Zedd      8        3       12      26        -
在本例中,应通过公式写出前3个值以及与这些值相关的名称:

A        B     C
Taylor  Zedd  26
Taylor  Matt  15
Matt    Zedd  12

谢谢

删除重复项,然后可以使用Large()计算出三个最大的数字,如下所示:

=LARGE($B$2:$F$6,ROW(A1))
抄写下来。对于C列中的前3个,您可以使用以下两个数组公式作为名称:

=INDEX($A$1:$A$6,MIN(IF($B$2:$F$6=C10,ROW($B$2:$F$6))))

=INDEX($A$1:$F$1,MIN(IF($B$2:$F$6=C10,COLUMN($B$2:$F$6))))
按Ctrl-Shift-Enter键确认


使用数据,运行此宏:

Sub dural()
    Dim i As Long, j As Long, K As Long
    i = 3: j = 2: K = 1

    Do
        Cells(K, "G") = Cells(i, 1)
        Cells(K, "H") = Cells(1, j)
        Cells(K, "I") = Cells(i, j)
        K = K + 1
        j = j + 1
        If Cells(i, j).Value = "-" Then
            j = 2
            i = i + 1
            If i = 7 Then Exit Do
        End If
    Loop

    Range("G1:I10").Select
        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
        ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("I1:I10") _
            , SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
        With ActiveWorkbook.Worksheets("Sheet1").Sort
            .SetRange Range("G1:I10")
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
End Sub
将在GHI列中获得完整的结果

选择前三行以获得前三个结果:


您能否将
行(A1)
更改为
行(A1)*2
,OP将能够保留重复的值?但我喜欢这种方法。