0

我需要一个公式来返回“文本”的最后一个匹配项的数据值。行号也是可以接受的。宏是不可接受的。名称列未排序,无法排序!只有列“名称”用作查找值。我宁愿使用一个/多个辅助列而不是数组公式。

Row Name    Data
1   Joe     10
2   Tom     20
3   Eva     30
4   Adam    40
5   Tom     21

LARGE 仅适用于数字,而 VLOOKUP 仅返回第一个匹配项。LOOKUP 有时只起作用,所以它也不起作用。

因此,如果我想要“Tom”的最后一场比赛,那么它应该返回“21”。

4

4 回答 4

1

使用辅助列可以避免使用数组公式。假设在 F1 中有要匹配的名称(即 Tom) 在辅助列 C2 行中输入

=IF(A2<>$F$1,0,row())

然后沿着数据复制公式。

现在列 C 包含 0 用于不匹配的名称和匹配的行号。最大化列产生解决方案的行。现在结果很简单,只需使用正确的偏移量和函数偏移量:

=OFFSET(B1,max(C:C)-1,0)

PS:我的 excel 副本是意大利语的,所以我无法测试这个公式的英文翻译。

于 2010-01-30T23:35:29.027 回答
1

我认为这是最简单的方法。

=LOOKUP("Tom";A2:B7)
于 2013-04-03T14:00:46.600 回答
0

使用数组公式创建一列(使用 Ctrl+Shift+Enter 输入):

=VLOOKUP(MAX(IF($B$2:$B$6=B2, $A$2:A$6, 0)), $A$2:$C$6, 3, FALSE)

为确保您做对了,请单击单元格,公式应显示在大括号 ({}) 中。

注意:这假设“行”在 A1 中。

于 2009-05-31T17:35:09.560 回答
0

我想出了一个解决方案,但它要求数据中的数字是并发的,就像这样

Name        Data
Joe         1
Tom         1
Eva         1
Adam        1
Tom         2
Tom         3
Eva         2

但这没关系,因为无论如何我的数据看起来都是这样。因此,如果之前使用 Name ,则它必须是旧的最高 +1 即并发。

名称是 A1,数据是 B1,这个公式进入 C2:

FLOOR(SQRT(2*SUMIF(A2:A7,A2,B2:B7)),1)
于 2009-05-31T20:57:42.123 回答