在单元格 D1 中放置=INDEX($A$1:$A$5,MATCH(C1,$B$1:$B$5,0))
然后在单元格 D2 中放入=IF(D1<>INDEX($A$1:$A$5,MATCH(C2,$B$1:$B$5,0)),INDEX($A$1:$A$5,MATCH(C2,$B$1:$B$5,0)),INDEX($A$1:$A$5,MATCH(C2,$B$1:$B$5,0)+MATCH(C2,INDIRECT("$B$"&MATCH(C2,$B$1:$B$5,0)+1&":$B$5"),0)))
Grades当存在重复时,这也将起作用
但我强烈建议使用Sort如下:

*****另外: ***** 这里是对上述公式的解释。
要获取包含我们要查找的数字(C 列中的数字)的行,您需要使用Match()函数。我们=MATCH(C1,B1:B5,0)输入D1:

这是在做什么:正在寻找 in 中的值C1,这是31
它正在寻找 in Range("B1:B5"),而 0 表示完全匹配。
因此,当寻找匹配时,C1我们31得到 5。这告诉我们 31 在Row 5
现在,要获得Column Aon的值,Row 5我们使用INDEX()如下函数:
我们添加=MATCH(C1,B1:B5,0)到D1=INDEX(A1:A5,MATCH(C1,B1:B5,0))

这将寻找Range("A1:A5")(Row 5这是因为 =MATCH(C1,B1:B5,0)= 5),结果将是Grey
现在如果我们把这个公式往下拉,我们会发现第一个问题:

这是我们的 2 个问题:
1) We get an `N/A` error in the last row.
2) Although `Green` is only in `Range("A1:A5")` one time we see it twice
even though it would seem that `White` should be twice.
这些是原因,因为:
1) We need to add `$` to the range that will remain the same so when we drag down
the formula is won't shift the range. As is the formula in `D5` is
`=INDEX(A5:A9,MATCH(C5,B5:B9,0))` and we receive the error *because*
`Range("A5:A9")` does not contain `15`, but the issue is we meant
to look in `Range("A1:A5")`
所以我们将公式更改为:=INDEX($A$1:$A$5,MATCH(C1,$B$1:$B$5,0))
请注意,我们没有在公式中使用$on ,因为我们希望这个值随着我们向下移动而改变。C1

但是当它们不应该存在时,我们仍然存在双重值的问题。
因为D1是第一个单元格,我们不会更改其中的公式。因为任何等于最大值的东西都只是与之相关联,我看不出有任何理由说明平局的顺序很重要。
相反,我们将开始D2并输入=IF(D1<>INDEX($A$1:$A$5,MATCH(C2,$B$1:$B$5,0)),INDEX($A$1:$A$5,MATCH(C2,$B$1:$B$5,0)),INDEX($A$1:$A$5,MATCH(C2,$B$1:$B$5,0)+MATCH(C2,INDIRECT("$B$"&MATCH(C2,$B$1:$B$5,0)+1&":$B$5"),0)))
这样做是检查 的值=INDEX($A$1:$A$5,MATCH(C2,$B$1:$B$5,0))
是否不等于上面行中的值。(作为一个排序列表意味着所有双精度值将在彼此之上)如果它不一样,则使用该值,但如果它相同,我们需要做更多的工作。
如果值不相同,我们使用公式INDEX($A$1:$A$5,MATCH(C2,$B$1:$B$5,0)+MATCH(C2,INDIRECT("$B$"&MATCH(C2,$B$1:$B$5,0)+1&":$B$5"),0)))
现在来解释它,我将使用我们的双值示例。在D3我们找到公式:=IF(D2<>INDEX($A$1:$A$5,MATCH(C3,$B$1:$B$5,0)),INDEX($A$1:$A$5,MATCH(C3,$B$1:$B$5,0)),INDEX($A$1:$A$5,MATCH(C3,$B$1:$B$5,0)+MATCH(C3,INDIRECT("$B$"&MATCH(C3,$B$1:$B$5,0)+1&":$B$5"),0)))
因为我们知道这INDEX($A$1:$A$5,MATCH(C3,$B$1:$B$5,0))将等于上面的单元格White(if falseINDEX($A$1:$A$5,MATCH(C3,$B$1:$B$5,0)+MATCH(C3,INDIRECT("$B$"&MATCH(C3,$B$1:$B$5,0)+1&":$B$5"),0))
我们知道在这种情况下MATCH(C3,$B$1:$B$5,0)包含第一个实例的行是行,所以我们需要在 Under 行中查找 23 。所以我们使用which is equal to因为我们将 a 添加到第一个匹配or的行中。C323Row 1Row 1MATCH(C3,INDIRECT("$B$"&MATCH(C3,$B$1:$B$5,0)+1&":$B$5"),0)MATCH("23", B2:B4,0)123C3
现在将返回我们2as 的值,该值23在 的第二行中,Range("A2:A5")在Red该范围内,如下所示:Row 1BlueRow 3

但我们不希望Row 2我们知道23与Green和 相关Green的,Row 3所以我们将最后找到值的行23(1或MATCH(C3,$B$1:$B$5,0))添加到我们当前找到它的行(2)并获取Row 3。