最后一场比赛的返回值

时间:2009-05-31 17:17:56

标签: excel excel-formula

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

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

LARGE仅适用于数字,VLOOKUP仅返回第一个匹配。 LOOKUP有时只能起作用,所以也是如此。

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

4 个答案:

答案 0 :(得分:1)

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

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

然后沿您的数据复制公式。

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

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

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

答案 1 :(得分:1)

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

=LOOKUP("Tom";A2:B7)

答案 2 :(得分:0)

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

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

为了确保你做得对,点击单元格,公式应该用大括号({})显示。

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

答案 3 :(得分: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)