我需要一个公式来为“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”。
答案 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)