find一个值,返回它下面的单元格(或下面最多4个),第一个值以1开头
我有一个Word文件导入Excel中。 该文件在列A中,长达400-500行。 举例说明:
Type application 0 shortcut 1 Client installation (standalone) 0 Client installation with data on the network (fileshare needed) 0 Client/server (server needed) 0 Webbased without dependancies 0 Webbased with dependancies Importancy 0 Company critical 1 Important 0 Supportive
还有许多其他感兴趣的领域。 现在我有一个search某个文本值的公式,例如“Product manager”,并返回它下面的值(名称)。 为了显示:
=INDEX(A:A;MATCH("Product manager";A:A;0)+2;1)
在这里,+2返回产品经理的名字。
这个问题我需要你的帮助!
问题如下。 在上面的大块代码中,您会看到一个值,其中1与单词文件中单击的checkbox相对应。 现在我想在Type应用程序上search并返回与1相对应的值,所以在这种情况下1客户机安装(独立) 。
上述INDEX和MATCH解决scheme不起作用,因为它只返回search查询(如此行+1或行+5) 以下的某一行。 我想find值types的应用程序 ,serach在它下面的6行,并返回唯一的值,它会发现。
以我更杰出的同事为例,我开始尝试使用INDEX来解决这类问题,所以答案就是这样的:
=INDEX(INDEX(B$1:B$10,MATCH(D2,B$1:B$10,0)):B$10,MATCH(1,INDEX(A$1:A$10,MATCH(D2,B$1:B$10,0)):A$10,0))
所以它find列B中的string(例如charlie),并在列A中search范围的其余部分以得到'1'。
如果所有的值都在问题中的一列中,那么公式就变成了
=INDEX(INDEX(A$1:A$10,MATCH(D2,A$1:A$10,0)):A$10, MATCH("1*",INDEX(A$1:A$10,MATCH(D2,A$1:A$10,0)):A$10,0))
限制范围和error handling应该是这样的:
=IFERROR( INDEX(INDEX(A:A,MATCH(D2,A:A,0)): INDEX(A:A,MATCH(D2,A:A,0)+4), MATCH("1*",INDEX(A:A,MATCH(D2,A:A,0)): INDEX(A:A,MATCH(D2,A:A,0)+4),0)), "No entry")
如果您想以相同的方式search多个列,则可以使用相同的公式,但如果不使用帮助列,则不可行。 所以复制它(比如说)两列,然后显示第一个匹配。
在E2中设置search开始: –
=MATCH(D2,A$1:A$20,0)+1
在F2中的search结束可能只是E2 + 4,但您也可以使用以下search到下一个“小标题”: –
=MATCH(1,INDEX((INDEX(A$1:A$20,E2):A$20>"2")+(INDEX(A$1:A$20,E2):A$20=""),),0)+E2-2
searchG2中以“1”开头的单元格: –
=IFERROR(MATCH("1*",INDEX(A$1:A$20,$E2):INDEX(A$1:A$20,$F2),0),"")
并拉入H2和I2。
在J2中获得三场比赛中的第一场:
=MIN(G2:I2)
并find它适用于K2的列: –
=IF(J2=0,"",MATCH(J2,G2:I2,0))
最后使用J2和K2中的行和列获取匹配的单元格: –
=IF(K2="","No entry",INDEX(INDEX(A$1:A$20,E2):C$20,J2,K2))
假设我们有这样的数据:
我们想要:
- find帕克
- 返回从Puck下面的“1”开始的第一个值
使用Match()和通配符可以findPuck的行。 所以在C5中 ,我们input:
=MATCH("*Puck",A1:A9999,0)
那么我们再次使用Match()来查找以“1”开头的行。 所以在C6我们input::
=INDEX(A1:A9999,MATCH("1*",INDIRECT("A" & C5 & ":A9999"),0)+C5-1)
当然,这种2细胞方法总是可以合并成一个细胞。