Excel索引匹配公式上次更改

我有一个专栏U和一个专栏L
我需要得到的是在列U中search时L列的值。

  Column L Column U 516 11 123 11 74 5 46 11 748 21 156 11 189 21 187 21 

例如:
我想在列U中search21,但是我需要find最后一次更改的第一个值
(该数字在列中保持不变)。
所以如果我想要属于21的值,我需要得到189。

我试了一下(感谢Scott Craner):
=INDEX($L:$L,AGGREGATE(14,6,ROW($U$10:$U$500)/($U$10:$U$500=D2),1))
但是,这让我最后的21个值如此187答案。

有人知道如何解决这个问题吗?

您需要在D2列中find列U中的最后一行,其中紧接着它的行不是相同的值。

 =INDEX(L:L, AGGREGATE(14,6,ROW(U$10:U$500)/((U$10:U$500=D2)*(U$9:U$499<>D2)),1)) 

在这里输入图像说明

现在把U15换成另一个21.结果就是,

在这里输入图像说明

对于列L和U中的dynamic数值(从第10行开始),使用,

 =INDEX(L:L, AGGREGATE(14,6,ROW(U$10:INDEX(U:U, MATCH(1E+99, U:U)))/((U$10:INDEX(U:U, MATCH(1E+99, U:U))=D2)*(U$9:INDEX(U:U, MATCH(1E+99, U:U)-1)<>D2)),1)) 

如果我理解正确,我相信这完成了任务:

 =INDEX($L:$L,MATCH(INDEX($L:$L,AGGREGATE(14,6,ROW($U$9:INDIRECT("$U$"&MATCH(INDEX($L:$L,AGGREGATE(14,6,ROW($U$10:$U$500)/($U$10:$U$500=D2),1)),$L:$L,0)))/($U$9:INDIRECT("$U$"&MATCH(INDEX($L:$L,AGGREGATE(14,6,ROW($U$10:$U$500)/($U$10:$U$500=D2),1)),$L:$L,0))<>D2),1)),$L:$L,0)+1) 

它build立在Scott的概念之上,并find187,然后将search数​​组限制到find187的行,并find最后一行没有search的数字(21)。 然后它将索引第一行,这将是最后一个系列中的第一个匹配。

在这里输入图像说明