我在Excel 2013中有一张水果表。
我想填写“类别”列,方法是从当前行搜索到顶部,直到第一次出现“::”,这是表格中类别的关键字。
如果有某种方法可以反转一个范围,我可以做一些像“= Match(”:: *“; $ A6:$ A $ 2)”来查找行。但是,这是不可能的。
有谁知道如何使用公式实现这一目标?
答案 0 :(得分:2)
使用您提供的示例数据,并假设您的数据已经按照示例中所示进行了组织,您可以利用该组织并在单元格C2中使用此公式并复制下来:
=IF(LEFT(A2,2)="::","",IF(LEFT(A1,2)="::",MID(A1,4,LEN(A1)),C1))
答案 1 :(得分:1)
假设您的表位于A1中,请将其放在C3中:
=INDEX(A:A, AGGREGATE (14,6,ROW($A$1:A2)/(LEFT($A$1:A2,2)="::"),1))
然后复制下来。
答案 2 :(得分:0)
这是一种有点不同的方法。我只是基本上回应你发布的这部分内容,以证明这是可能的:
如果有某种方法可以反转一个范围,我可以做一些像“= Match(”:: *“; $ A6:$ A $ 2)”来查找行。但是,这是不可能的。
可以扭转范围,这很棘手。
正如您所指出的那样:$A6:$A$2
无效,因为这相当于$A$2:$A6
。
但是,如果没有深入细节,这个数组公式将反转这个范围:
= INDEX($A$2:$A6,N(IF({1},MAX(ROW($A$2:$A6))-ROW($A$2:$A6)+1)))
请注意,这是一个数组公式,因此您必须按 Ctrl + Shift + Enter 而不是 Enter 将此公式输入单元格后。
您可以将其与MATCH
公式结合使用,以获得所需的结果(告诉您::
行的行数是多少):
= MATCH("::*",INDEX($A$2:$A6,N(IF({1},MAX(ROW($A$2:$A6))-ROW($A$2:$A6)+1))),0)
(也哈哈,这有点酷:通常你会在MATCH
中看到INDEX
有效地获得VLOOKUP
类型的功能。这是我第一次看到它在INDEX
内MATCH
的相反方式。)
请注意,我并不是说这对于这个特定问题来说必然是最好的方法,只是证明数组可以反转。