Excel中的逆向匹配搜索

Excel中的逆向匹配搜索,excel,excel-formula,match,reverse,Excel,Excel Formula,Match,Reverse,我需要从右到左反向进行匹配/索引搜索 每个单元格都有一个x,我需要从右到左查找x所在的列并报告位置,然后可以转到该列的顶部并提取数据。我基本上需要找出最后一个X是什么列 A B C D E F G H I J State 27-Aug 28-Aug 29-Aug 30-Aug 31-Aug 1-Sep 2-Sep 3-Sep 4-Sep VI X

我需要从右到左反向进行匹配/索引搜索

每个单元格都有一个x,我需要从右到左查找x所在的列并报告位置,然后可以转到该列的顶部并提取数据。我基本上需要找出最后一个X是什么列

A         B        C        D    E          F      G      H      I       J
State   27-Aug  28-Aug  29-Aug  30-Aug  31-Aug  1-Sep   2-Sep   3-Sep   4-Sep
VI       X        X       X        X       X      X     

在上面的例子中,3行10列如果我想看到最后一个X在G(7)列中,那么我使用索引转到该列(7),A行到1-sep作为答案。

这将找到最后一个有值的单元格,不管值是多少:

=INDEX($A$1:$J$1,MATCH("zzz",A2:J2))


如果要查找最后一个
X
,无论其他单元格中是否有,请使用以下公式:

=INDEX($A$1:$J$1,AGGREGATE(14,6,COLUMN(A2:J2)/(A2:J2="X"),1))
注意:这是一个数组类型的公式,比前面的公式慢。如果你只有一个,那就没什么区别了。如果你有一百个,你会看到不同

但是,如果在
X
之后有其他文本字符串,并且您想要
X
,那么这就是方法


这将找到最后一个有值的单元格,而不管值:

=INDEX($A$1:$J$1,MATCH("zzz",A2:J2))


如果要查找最后一个
X
,无论其他单元格中是否有,请使用以下公式:

=INDEX($A$1:$J$1,AGGREGATE(14,6,COLUMN(A2:J2)/(A2:J2="X"),1))
注意:这是一个数组类型的公式,比前面的公式慢。如果你只有一个,那就没什么区别了。如果你有一百个,你会看到不同

但是,如果在
X
之后有其他文本字符串,并且您想要
X
,那么这就是方法

试试看

=INDEX(1:1,1,COUNTIF(2:2,"X")-1) 
假设X的流中没有间隙

试试看

=INDEX(1:1,1,COUNTIF(2:2,"X")-1) 
=MATCH(2,IF(A2:J2="x",1,FALSE))
假设X的流中没有间隙

=MATCH(2,IF(A2:J2="x",1,FALSE))
这是一个数组公式。 这将给出x的最后位置。然后,正如您所指出的,将结果放入索引函数中,您应该是好的。我喜欢这个选项,因为我可以在if语句中放入任何条件,比如>0

这是一个数组公式。

这将给出x的最后位置。然后,正如您所指出的,将结果放入索引函数中,您应该是好的。我喜欢这个选项,因为我可以在if语句中放入任何条件,比如>0。

=INDEX(1:1,1,COUNTIF(2:2,“X”)-1),假设没有gaps@User91504这是一个很好的选择,请把它作为一个答案。它可能适用于OP,也可能不适用于OP,但未来的读者可能会发现它很有用。@ScottCraner sure thing=INDEX(1:1,1,COUNTIF(2:2,“X”)-1),假设没有gaps@User91504这是一个很好的选择,请把它作为一个答案。它可能对OP有用,也可能不有用,但未来的读者可能会发现它很有用。@ScottCraner肯定有用,非常感谢!!!我在列中总是有一个X,中间可能有几个空格,但是中间的空格是这样的。再次感谢您在这方面的帮助@JoshuaGoodman请单击答案旁边的复选标记,将其标记为正确。仅供参考,我能够获得work=INDEX($A$1:$J$1,MATCH(“zzz”,A2:J2))的第一个答案。请解释一下这是怎么回事?列(A2:J2)/(A2:J2=“X”)@ivan_pozdeev那么你做错了。这两个公式都将忽略间隙。第一个将返回最后一个文本值的值。第二个将返回最后一个
x
处的值。你可能误解了如何使用这个公式。不管是否有差距。这很好。非常感谢!!!我在列中总是有一个X,中间可能有几个空格,但是中间的空格是这样的。再次感谢您在这方面的帮助@JoshuaGoodman请单击答案旁边的复选标记,将其标记为正确。仅供参考,我能够获得work=INDEX($A$1:$J$1,MATCH(“zzz”,A2:J2))的第一个答案。请解释一下这是怎么回事?列(A2:J2)/(A2:J2=“X”)@ivan_pozdeev那么你做错了。这两个公式都将忽略间隙。第一个将返回最后一个文本值的值。第二个将返回最后一个
x
处的值。你可能误解了如何使用这个公式。不管是否有差距。列表中会有差距,因此我需要使用Scott Craner提供的解决方案列表中会有差距,因此我需要使用Scott Craner提供的解决方案此匹配不适用于未排序的数据,必须对此处提供的匹配数据进行排序。当第三个参数为0时,Match在未排序且完全匹配的情况下工作。但是match查找first match此匹配不适用于未排序的数据,必须对此处给定匹配的数据进行排序。当第三个参数为0时,Match在未排序且完全匹配的情况下工作。但是match找到了第一个匹配项