Temos unha lista de pedidos con números e nomes de mercadorías. Gustaríame, por exemplo, sacar da táboa por número de pedido todos os produtos que se inclúen nela. Máis ou menos así:
Función marabillosa BUSCAR V (BUSCAR V) en tal situación só axudará parcialmente, porque só pode extraer datos pola primeira coincidencia atopada, é dicir, só nos dará mazás. Para atopar e extraer todos os elementos da táboa, é mellor usar unha fórmula matricial. Como este:
=Index($B$2:$B$16;MENOS(IF($E$2=A2: A16;LIÑA(B2:B16)-1;»»);LIÑA()-5))
Debe introducirse do seguinte xeito:
- seleccione as celas onde se deben mostrar os resultados (no noso exemplo, este é o rango D6:D20)
- introduza (copie a fórmula na primeira cela) do intervalo
- prensa Ctrl + Desprazarse + Entrar
Resta unitaria en fragmento CADA(B2:B16)-1 faise por mor da cabeceira da táboa. Polo mesmo motivo, para compensar o cambio no rango resultante en relación ao orixinal, réstase o número cinco do fragmento STRING()-5
Para ocultar o #NUM! erro que aparecerá nas celas baleiras do rango resultante D6:D20, pode usar as funcións de verificación de erros IF e EOSH, substituíndo a nosa fórmula por outra un pouco máis complexa:
=SE(EOSH(ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)));»»;ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5)))
En Excel 2007, apareceu unha función IFERROR máis conveniente: permítelle resolver o problema de forma máis compacta:
=SE ERRO(ИНДЕКС($B$2:$B$16;НАИМЕНЬШИЙ(ЕСЛИ($E$2=A2:A16;СТРОКА(B2:B16)-1;»»);СТРОКА()-5));»»)
PS
Na versión inglesa de Excel, estas funcións terán o seguinte aspecto:
=INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))
=IF(ISERR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5))),»»,INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)))
=IFERROR(INDEX($B$2:$B$16,SMALL(IF($E$2=A2:A16,ROW(B2:B16)-1,»»),ROW()-5)),»»)
- Usando a función BUSCAR V para atopar datos nunha táboa
- Unha versión mellorada da función VLOOKUP2 que pode buscar en calquera columna e non só no primeiro valor
- VLOOKUP2 e VLOOKUP3 funcións do complemento PLEX
- Que son as fórmulas matriciales e para que serven?