在Excel中,第3列中有一个名为"level“的数组,如下所示: 1、2、3、4、5、6、BR、7、8、9、10、BR、11、12、13、14、BR、15、16、17、18、BR、19、20…C1中有一个变量,它是搜索数组的起点。
我想要做的是在C1中输入变量,例如8,在这个例子中,得到"BR“之前的数字。或者1-6应该给出6,7-10的值,10的值,11-14的值,等等。
在我的帮助下
=INDIRECT(ADDRESS(MATCH("BR", INDIRECT(ADDRESS(MATCH(C1,level, 0), 3) & ":" & ADDRESS(ROWS(level), 3)), 0)+MATCH(C1,level, 0)-2, 3))它可以正常工作,除非"BR“后面的数字是变量。在这种情况下,它给出了前面的"BR“上面的数字。
示例11给出10
此外,"BR“在数组中的位置可能会发生变化。
谢谢你的帮助
发布于 2015-06-28 18:04:50
这里还有另一种选择。
=INDEX(level,MATCH("BR",(OFFSET(INDEX(level,1),MATCH(C1,level,0),0,ROWS(level)-MATCH(C1,level,0))),0)+MATCH(C1,level,0)-1)发布于 2015-06-28 17:26:18
试试这个数组-输入的公式。输入公式,按住ctrl-shift,同时按enter。如果操作正确,Excel将在公式栏中将大括号{...}放在公式旁边。
=INDEX(Level,-1+MATCH(TRUE,(Level="BR")*ROW(Level)>MATCH($C$1,Level,0),0))发布于 2015-06-28 17:35:31
您提供的示例在我的excel中运行得很好,但是,第3列包含您提到的C1单元格,也许这就是为什么在文件中搞砸它的原因。是否确定用于输入搜索值的单元格不影响您的级别定义?
你能让你的桌子方便点吗?
https://stackoverflow.com/questions/31102143
复制相似问题