我一直在寻找特定问题的答案。我找到了一个很好的答案here,其中解决方案是公式:{= MATCH(2,1 /(A1:A10 =“something”))}
我的问题是:如何在 INDIRECT 功能中使用此类公式?我需要用 INDIRECT(“A”& ROW() - 8&“:A& ROW())替换范围A1:A10 我还确保我在=“某事”部分使用了双引号。我试了几个小时却没有成功。
我们将不胜感激。
问候。
答案 0 :(得分:1)
不要使用INDIRECT(),因为它是一个易失性函数,请使用INDEX():
=MATCH(2,1/(INDEX(A:A,ROW()-8):INDEX(A:A,ROW())=8))
这是一个数组公式,当退出编辑模式而不是Enter时,必须使用Ctrl-Shift-Enter确认。如果操作正确,Excel会自动将{}
放在公式周围。
也只是为了确保我们都明白这个公式正在做什么。匹配将返回在找到最后8
的九个单元格范围内的相对位置。
所以如果范围有:
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"))