excel根据匹配值获取行范围或实际值

excel根据匹配值获取行范围或实际值,excel,excel-formula,Excel,Excel Formula,我的excel表格中有以下结构 A B --------- ----- 1 | category1 test1 2 | category1 test2 3 | category1 test3 4 | category2 test4 5 | category2 test5 6 | category3 test6 7 | category3 test7 8 | category3

我的excel表格中有以下结构

          A         B
      ---------   -----  
 1 |  category1   test1
 2 |  category1   test2
 3 |  category1   test3
 4 |  category2   test4
 5 |  category2   test5
 6 |  category3   test6
 7 |  category3   test7
 8 |  category3   test8
 9 |  category3   test9
10 |  category4   test10
您能否建议使用EXCEL函数(非VBA)返回范围或实际值的方法,以类别文本作为输入

例如,给定
category2
我需要返回类似
B4:B5
的“test4”/“test5”

我需要一种动态执行此操作的方法,也就是说,如果我进行插入并向类别添加新值,我需要一个仍能工作的函数,例如

          A         B
      ---------   -----  
 4 |  category2   test4
 5 |  category2   test5
 6 |  category2   test200
 7 |  category2   test203

现在给定
category2
我将返回
B4:B7
假设类别总是连续的,您可以获得参考:

=OFFSET($A$1,MATCH("category2",$A:$A,0)-1,1,COUNTIF($A:$A,"category2"))

如果您的类别总是以相同的前缀开头,则可以使用以下内容:

=ADDRESS(MATCH("category"&$C$1,B:B,0),2,4,1)&":"&ADDRESS(MATCH("category"&($C$1+1),B:B,0)-1,2,4,1)
所以如果你在C1中加上“2”,它将返回“B4:B5”


这还假设类别是以递增的值命名的,因此如果没有类别3,这将不起作用。

类别是否总是连续的?@Taosique hmmm是的类别名称是连续分组的我得到了#值!它是这样工作的,还是应该用作另一个函数的输入?是的,您可以将它与索引(偏移量(…)一起使用。
是1,2,3。。。i、 e.找到的行数。如果没有找到匹配的行,它将返回
#N/A