Excel 索引匹配公式上次更改
Excel Index Match Formula last change
我有一个列 U
和一个列 L
。
我需要得到的是在 U 列中搜索时 L 列的值。
Column L Column U
516 11
123 11
74 5
46 11
748 21
156 11
189 21
187 21
例如:
我想在 U 列中搜索 21,但我需要从上次更改中找到第一个值
(该列中的数字保持不变)。
所以如果我想要属于 21 的值,我需要得到 189。
我尝试过(感谢 Scott Craner):
=INDEX($L:$L,AGGREGATE(14,6,ROW($U:$U0)/($U:$U0=D2),1))
但这让我得到了最后 21 个值,所以 187 作为答案。
有人知道怎么解决吗?
如果我理解正确的话,我相信这就完成了任务:
=INDEX($L:$L,MATCH(INDEX($L:$L,AGGREGATE(14,6,ROW($U:INDIRECT("$U$"&MATCH(INDEX($L:$L,AGGREGATE(14,6,ROW($U:$U0)/($U:$U0=D2),1)),$L:$L,0)))/($U:INDIRECT("$U$"&MATCH(INDEX($L:$L,AGGREGATE(14,6,ROW($U:$U0)/($U:$U0=D2),1)),$L:$L,0))<>D2),1)),$L:$L,0)+1)
它基于 Scott 的概念,找到 187,然后将搜索数组限制在找到 187 的行,并找到没有您要搜索的数字 (21) 的最后一行。然后它索引之后的第一行,这将是最后一个系列中的第一个匹配项。
您需要使用 D2 中的值找到 U 列中的最后一行,其中紧靠其上方的行的值不同。
=INDEX(L:L, AGGREGATE(14,6,ROW(U:U0)/((U:U0=D2)*(U:U9<>D2)),1))
现在把U15改成另一个21,结果变成,
对于 L 和 U 列(从第 10 行开始)中的动态数值,使用,
=INDEX(L:L, AGGREGATE(14,6,ROW(U:INDEX(U:U, MATCH(1E+99, U:U)))/((U:INDEX(U:U, MATCH(1E+99, U:U))=D2)*(U:INDEX(U:U, MATCH(1E+99, U:U)-1)<>D2)),1))
我有一个列 U
和一个列 L
。
我需要得到的是在 U 列中搜索时 L 列的值。
Column L Column U
516 11
123 11
74 5
46 11
748 21
156 11
189 21
187 21
例如:
我想在 U 列中搜索 21,但我需要从上次更改中找到第一个值
(该列中的数字保持不变)。
所以如果我想要属于 21 的值,我需要得到 189。
我尝试过(感谢 Scott Craner):
=INDEX($L:$L,AGGREGATE(14,6,ROW($U:$U0)/($U:$U0=D2),1))
但这让我得到了最后 21 个值,所以 187 作为答案。
有人知道怎么解决吗?
如果我理解正确的话,我相信这就完成了任务:
=INDEX($L:$L,MATCH(INDEX($L:$L,AGGREGATE(14,6,ROW($U:INDIRECT("$U$"&MATCH(INDEX($L:$L,AGGREGATE(14,6,ROW($U:$U0)/($U:$U0=D2),1)),$L:$L,0)))/($U:INDIRECT("$U$"&MATCH(INDEX($L:$L,AGGREGATE(14,6,ROW($U:$U0)/($U:$U0=D2),1)),$L:$L,0))<>D2),1)),$L:$L,0)+1)
它基于 Scott 的概念,找到 187,然后将搜索数组限制在找到 187 的行,并找到没有您要搜索的数字 (21) 的最后一行。然后它索引之后的第一行,这将是最后一个系列中的第一个匹配项。
您需要使用 D2 中的值找到 U 列中的最后一行,其中紧靠其上方的行的值不同。
=INDEX(L:L, AGGREGATE(14,6,ROW(U:U0)/((U:U0=D2)*(U:U9<>D2)),1))
现在把U15改成另一个21,结果变成,
对于 L 和 U 列(从第 10 行开始)中的动态数值,使用,
=INDEX(L:L, AGGREGATE(14,6,ROW(U:INDEX(U:U, MATCH(1E+99, U:U)))/((U:INDEX(U:U, MATCH(1E+99, U:U))=D2)*(U:INDEX(U:U, MATCH(1E+99, U:U)-1)<>D2)),1))