Excel:如何用这种公式使用INDIRECT:{= MATCH(2,1 /(A1:A10 =“something”))}

我正在寻找一个特定问题的答案。 我在这里find了一个很好的答案,解决scheme是公式:{= MATCH(2,1 /(A1:A10 =“something”))}

我的问题是:我怎样才能使用这个公式与间接函数? 我需要使用INDIRECT(“A”&ROW() – 8&“:A”&ROW())来replace范围A1:A10。我还确保对=“something”部分使用双引号。 我尝试了几个小时没有成功。

您的帮助将不胜感激。

问候。

不要使用INDIRECT(),因为它是一个易失性函数,而是使用INDEX():

=MATCH(2,1/(INDEX(A:A,ROW()-8):INDEX(A:A,ROW())=8)) 

这是一个数组公式,在退出编辑模式而不是Enter时,必须使用Ctrl-Shift-Enter确认。 如果正确完成,Excel将自动在公式的周围放置{}

也只是为了确保我们都了解这个公式正在做什么。 Match将返回最后8个元素的9个单元格范围内的相对位置。

所以如果范围有:

 1 8 2 8 3 8 5 6 7 

它将返回6 ,因为这是8的最后一个位置。 无论比赛的实际行如何,它将返回6 。 该值是相对于不是表单的范围。

每当Excel Re计算即使所引用的数据发生变化时,易失性函数也会重新计算。 相比之下,非易失性函数仅在其所引用的数据发生改变时才重新计算,从而将计算次数保持为最小。


现在你改变了你的问题,使我的答案错了。 这里是"something"

 =MATCH(2,1/(INDEX(A:A,ROW()-8):INDEX(A:A,ROW())="something"))