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

时间:2014-11-12 15:27:42

标签: 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   test8
 9 |  category3   test9
10 |  category4   test10

您能否建议使用 EXCEL函数非VBA )获取范围实际值< / strong>给出类别文本作为输入?

例如,给定category2我需要取回B4:B5"test4"/"test5"

之类的内容

我需要一种动态执行此操作的方法,即如果我执行插入并向类别添加新值,则需要一个仍然有效的函数,例如

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

现在给我category2我会回来B4:B7

2 个答案:

答案 0 :(得分:2)

假设类别总是连续的,您可以参考:

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

答案 1 :(得分:0)

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

=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”

这也假定类别以递增的值命名,因此如果没有category3则不起作用。