Táboa de contidos
Estes exemplos ensinaránche a buscar varios criterios, devolver unha instancia específica ou todas as coincidencias, facer unha búsqueda dinámica en varias follas e moito máis.
É a segunda parte de a serie que che axudará a aproveitar o poder de Excel VLOOKUP. Os exemplos implican que sabe como funciona esta función. Se non é así, é razoable comezar cos usos básicos de BUSCAR V en Excel.
Antes de avanzar, permíteme lembrarche brevemente a sintaxe:
BUSCARV(valor_busca, matriz_táboa, num_índice_col, [buscada_rango] )Agora que todos están na mesma páxina, vexamos máis de cerca os exemplos de fórmulas avanzadas de BUSCAR V:
Como buscar varios criterios
O Excel A función VLOOKUP é moi útil cando se trata de buscar un valor determinado nunha base de datos. Non obstante, carece dunha característica importante: a súa sintaxe permite só un valor de busca. Pero e se queres buscar con varias condicións? Hai algunhas solucións diferentes entre as que podes escoller.
Fórmula 1. BUSCAR V con dous criterios
Supoña que tes unha lista de pedidos e queres atopar a cantidade en función de 2 criterios, Nome do cliente e Produto . Un factor complicado é que cada cliente pediu varios produtos, como se mostra na seguinte táboa:
Unha fórmula habitual de BUSCAR VOLTA non funcionará nesta situación porque devolve o primeiro atopado. coincidencia baseada en arexións:
Como no exemplo anterior, comezamos por definir algúns nomes:
- O rango A2:B5 na folla CA chámase CA_Sales .
- O rango A2:B5 na folla FL chámase FL_Sales .
- O rango A2:B5 na folla KS chámase KS_Sales .
Como podes ver, todos os intervalos nomeados teñen unha parte común ( Vendas ) e partes únicas ( CA , FL , KS ). Asegúrate de nomear os teus intervalos dun xeito similar, xa que é esencial para a fórmula que imos crear.
Fórmula 1. BUSCAR V INDIRECTA para extraer dinámicamente datos de diferentes follas
Se a túa tarefa é recuperar datos de varias follas, unha fórmula INDIRECTA VLOOKUP é a mellor solución: compacta e fácil de entender.
Para este exemplo, organizamos a táboa de resumo deste xeito:
- Introduza os produtos de interese en A2 e A3. Eses son os nosos valores de busca.
- Introduza as partes únicas dos intervalos nomeados en B1, C1 e D1.
E agora, concatenamos a cela que contén a parte única (B1) coa parte común ("_Sales"), e alimenta a cadea resultante a INDIRECTO:
INDIRECT(B$1&"_Sales")
A función INDIRECTA transforma a cadea nun nome que Excel pode entender e póñase en o argumento table_array de BUSCAR V:
=VLOOKUP($A2, INDIRECT(B$1&"_Sales"), 2, FALSE)
A fórmula anterior vai a B2 e despois cópiaa cara abaixo e á dereita.
Por favor preste atención a que, no valor de busca ($A2),bloqueamos a coordenada da columna cunha referencia de cela absoluta para que a columna permaneza fixa cando se copie a fórmula á dereita. Na referencia B$1, bloqueamos a fila porque queremos que a coordenada da columna cambie e proporcione unha parte do nome apropiada a INDIRECTO dependendo da columna na que se copie a fórmula:
Se a súa táboa principal está organizada de forma diferente, os valores de busca nunha fila e as partes únicas dos nomes do intervalo nunha columna, entón debería bloquear a coordenada da fila no valor de busca (B $ 1) e a coordenada da columna nas partes do nome. ($A2):
=VLOOKUP(B$1, INDIRECT($A2&"_Sales"), 2, FALSE)
Fórmula 2. BUSCAR V e IF anidados para buscar varias follas
Na situación na que ten só dúas ou tres follas de busca, podes usar unha fórmula BUSCAR V bastante sinxela con funcións IF aniñadas para seleccionar a folla correcta en función do valor clave nunha cela determinada:
=VLOOKUP($A2, IF(B$1="CA", CA_Sales, IF(B$1="FL", FL_Sales, IF(B$1="KS", KS_Sales,""))), 2, FALSE)
Onde $A2 é o valor de busca (nome do elemento) e B$1 é o valor da clave (estado):
Neste caso, non precisa definir nomes e pode utilizar referencias para referirse a outra folla ou caderno de traballo.
Para máis fórmulas exa mples, consulte Como BUSCAR V en varias follas en Excel.
Así é como usar BUSCAR V en Excel. Grazas por ler e espero verte no noso blog a próxima semana!
Practica para descargar
Exemplos de fórmulas de BUSCAR V Avanzado (.xlsxficheiro)
valor de busca único que especifique.Para superar isto, pode engadir alí unha columna auxiliar e concatenar os valores de dúas columnas de busca ( Cliente e Produto ). É importante que a columna auxiliar sexa a columna máis á esquerda da matriz da táboa porque é onde BUSCAR V de Excel sempre busca o valor de busca.
Entón, engade unha columna á esquerda da túa táboa. táboa e copie a seguinte fórmula nesa columna. Isto encherá a columna auxiliar cos valores das columnas B e C (o carácter espazo está concatenado no medio para unha mellor lexibilidade):
=B2&" "&C2
E, a continuación, use unha fórmula estándar de BUSCAR V ambos os criterios no argumento valor_busca , separados cun espazo:
=VLOOKUP("Jeremy Sweets", A2:D11, 4, FALSE)
Ou, introduza os criterios en celas separadas (G1 e G2 no noso caso) e concatene aqueles celas:
=VLOOKUP(G1&" "&G2, A2:D11, 4, FALSE)
Como queremos devolver un valor da columna D, que é o cuarto da matriz da táboa, usamos 4 para col_index_num . O argumento range_lookup establécese como FALSE para buscar unha coincidencia exacta. A seguinte captura de pantalla mostra o resultado:
No caso de que a túa táboa de busca estea en outra folla , inclúa o nome da folla na túa fórmula de BUSCAR V. Por exemplo:
=VLOOKUP(G1&" "&G2, Orders!A2:D11, 4, FALSE)
Como alternativa, cree un intervalo con nome para a táboa de busca (por exemplo, Pedidos ) para que a fórmula sexa máis fácil de ler:
=VLOOKUP(G1&" "&G2, Orders, 4, FALSE)
Para obter máis información, consulte Como facerBusca desde outra folla en Excel.
Nota. Para que a fórmula funcione correctamente, os valores da columna auxiliar deben concatenar exactamente do mesmo xeito que no argumento lookup_value . Por exemplo, usamos un carácter espazo para separar os criterios tanto na columna auxiliar (B2&" "&C2) como na fórmula BUSCAR V (G1&" "&G2).
Fórmula 2. BUSCAR V de Excel con varias condicións
En teoría, podes usar o enfoque anterior para a Busca V para máis de dous criterios. Non obstante, hai un par de advertencias. En primeiro lugar, un valor de busca está limitado a 255 caracteres e, en segundo lugar, é posible que o deseño da folla de traballo non permita engadir unha columna auxiliar.
Por sorte, Microsoft Excel adoita ofrecer máis dunha forma de facer o mesmo. Para buscar varios criterios, podes usar unha combinación de COINCIDENCIA DE ÍNDICE ou a función BUSCAR XL introducida recentemente en Office 365.
Por exemplo, para buscar en función de 3 valores diferentes ( Data , Nome do cliente e Produto ), use unha das seguintes fórmulas:
=INDEX(D2:D11, MATCH(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), 0))
=XLOOKUP(1, (G1=A2:A11) * (G2=B2:B11) * (G3=C2:C11), D2:D11)
Onde:
- G1 é o criterio 1 (data)
- G2 é o criterio 2 (nome do cliente)
- G3 é o criterio 3 (produto)
- A2:A11 é a busca intervalo 1 (datas)
- B2:B11 é intervalo de busca 2 (nomes de clientes)
- C2:C11 é intervalo de busca 3 (produtos)
- D2:D11 é a devolución rango (cantidade)
Nota. En todas as versións excepto Excel 365, INDEXMATCH debe introducirse como fórmula de matriz CSE premendo Ctrl + Maiús + Intro. En Excel 365 que admite matrices dinámicas, tamén funciona como unha fórmula normal.
Para a explicación detallada das fórmulas, consulte:
- XLOOKUP con varios criterios
- INDEX MATCH fórmula con varios criterios
Como use BUSCAR V para obter a segunda, terceira ou enésima coincidencia
Como xa sabe, Excel VLOOKUP só pode buscar un valor coincidente, máis precisamente, devolve a primeira coincidencia atopada. Pero que pasa se hai varias coincidencias na matriz de busca e queres obter a segunda ou terceira instancia? A tarefa soa bastante complicada, pero a solución existe!
Fórmula 1. Vlookup Nth instance
Supoña que tes os nomes de clientes nunha columna, os produtos que compraron noutra e que estás a buscar para atopar o 2o ou 3o produto comprado por un determinado cliente.
O xeito máis sinxelo é engadir unha columna auxiliar á esquerda da táboa como fixemos no primeiro exemplo. Pero esta vez, encherémolo con nomes de clientes e números de ocorrencias como " John Doe1 ", " John Doe2 ", etc.
Para obter a aparición, use a función COUNTIF cunha referencia de rango mixto (a primeira referencia é absoluta e a segunda relativa como $B$2:B2). Dado que a referencia relativa cambia en función da posición da cela onde se copia a fórmula, na fila 3 converterase en $B$2:B3, na fila 4 -$B$2:B4 e así por diante.
Concatenada co nome do cliente (B2), a fórmula toma esta forma:
=B2&COUNTIF($B$2:B2, B2)
A fórmula anterior vai a A2 , e despois cópiao en tantas celas como sexa necesario.
Despois diso, introduza o nome de destino e o número de aparición en celas separadas (F1 e F2) e use a fórmula a continuación para buscar unha ocorrencia específica:
=VLOOKUP(F1&F2, A2:C11, 3, FALSE)
Fórmula 2. Segunda aparición de Vlookup
Se está a buscar a segunda instancia do valor de busca, pode prescindir da columna auxiliar. En vez diso, cree a matriz da táboa de forma dinámica usando a función INDIRECTA xunto con MATCH:
=VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11"), 2, FALSE)
Onde:
- E1 é o valor de busca
- A2:A11 é o intervalo de busca
- B11 é a última cela (inferior dereita) da táboa de busca
Teña en conta que o a fórmula anterior está escrita para un caso específico onde as celas de datos da táboa de busca comezan na fila 2. Se a túa táboa está nalgún lugar no medio da folla, utiliza esta fórmula universal, onde A1 é a cela superior esquerda da táboa de busca que contén un encabezado de columna:
=VLOOKUP(E1, INDIRECT("A"&(MATCH(E1, A2:A11, 0)+1+ROW(A1))&":B11"), 2, FALSE)
Como funciona esta fórmula
Aquí está a parte clave da fórmula que crea un intervalo de busca dinámica dinámica :
INDIRECT("A"&(MATCH(E1, A2:A11, 0)+2)&":B11")
A función MATCH configurada para a coincidencia exacta (0 no último argumento) compara o nome de destino (E1) coa lista de nomes (A2:A11) e devolve a posición do primeiro atopado. coinciden, que é 3no noso caso. Este número vai ser usado como a coordenada da fila inicial para o intervalo de busca v, polo que lle engadimos 2 (+1 para excluír a primeira instancia e +1 para excluír a fila 1 coas cabeceiras das columnas). Alternativamente, pode usar 1+ROW(A1) para calcular automaticamente o axuste necesario en función da posición da fila de cabeceira (A1 no noso caso).
Como resultado, obtemos a seguinte cadea de texto, que INDIRECTO convértese nunha referencia de intervalo:
INDIRECT("A"&5&":B11") -> A5:B11
Este intervalo vai ao argumento table_array de BUSCARV o que o obriga a comezar a buscar na fila 5, deixando fóra a primeira instancia de o valor de busca:
VLOOKUP(E1, A5:B11, 2, FALSE)
Como buscar e devolver varios valores en Excel
A función BUSCAR V de Excel está deseñada para devolver só unha coincidencia. Hai algún xeito de buscar varias instancias? Si, hai, aínda que non é fácil. Isto require un uso combinado de varias funcións como INDEX, SMALL e ROW é unha fórmula matricial.
Por exemplo, a seguinte pode atopar todas as ocorrencias do valor de busca F2 no intervalo de busca B2:B16 e devolver varias coincidentes da columna C:
{=IFERROR(INDEX($C$2:$C$11, SMALL(IF($F$1=$B$2:$B$11, ROW($C$2:$C$11)-1,""), ROW()-1)),"")}
Hai 2 formas de introducir a fórmula na túa folla de traballo:
- Escriba a fórmula na primeira cela, prema Ctrl + Maiús + Intro e arrástrao cara abaixo ata algunhas celas máis.
- Seleccione varias celas adxacentes nunha soa columna (F1:F11 na captura de pantalla de abaixo), escriba a fórmula e prema Ctrl +Maiús + Intro para completalo.
De calquera xeito, o número de celas nas que introduce a fórmula debe ser igual ou superior ao número máximo de coincidencias posibles.
Para obter unha explicación detallada da lóxica da fórmula e máis exemplos, consulte Como buscar varios valores en Excel.
Como buscar en filas e columnas (busca bidireccional)
Busca bidireccional (tamén coñecido como busca de matriz ou busca bidimensional ) é unha palabra elegante para buscar un valor na intersección de unha determinada fila e columna. Existen algunhas formas diferentes de facer a busca en dúas dimensións en Excel, pero como o foco deste titorial está na función BUSCAR V, naturalmente usarémola.
Para este exemplo, tomaremos o seguinte. táboa coas vendas mensuais e elabora unha fórmula VLOOKUP para recuperar a cifra de vendas dun artigo específico nun mes determinado.
Con nomes de artigos en A2:A9, nomes de meses en B1:F1, o artigo de destino en I1. e o mes obxectivo en I2, a fórmula é o seguinte:
=VLOOKUP(I1, A2:F9, MATCH(I2, A1:F1, 0), FALSE)
Como funciona esta fórmula
O núcleo da fórmula é a función BUSCAR V estándar que busca unha coincidencia exacta co valor de busca en I1. Pero como non sabemos en que columna están exactamente as vendas dun mes específico, non podemos proporcionar o número de columna directamente ao argumento col_index_num . Para atopar esa columna, usamos o seguinte MATCHfunción:
MATCH(I2, A1:F1, 0)
Traducido ao inglés, a fórmula di: busque o valor I2 en A1:F1 e devolva a súa posición relativa na matriz. Ao proporcionar 0 ao terceiro argumento, indicas a MATCH que atope o valor exactamente igual ao valor de busca (é como usar FALSE para o argumento range_lookup de BUSCARV).
Xa que Mar está na cuarta columna da matriz de busca, a función MATCH devolve 4, que vai directamente ao argumento col_index_num de BUSCAR V:
VLOOKUP(I1, A2:F9, 4, FALSE)
Por favor preste atención a que aínda que os nomes dos meses comezan na columna B, usamos A1:I1 para a matriz de busca. Isto faise para que o número devolto por MATCH se corresponda coa posición da columna en table_array de VLOOKUP.
Para saber máis formas de realizar a busca de matriz en Excel, consulte INDEX MATCH MATCH e outras fórmulas para a busca bidimensional.
Como facer varias Vlookup en Excel (Vlookup anidada)
Ás veces pode ocorrer que a súa táboa principal e a súa táboa de busca non teñan unha soa columna en común, o que lle impide facer unha Vlookup entre dúas táboas. Non obstante, existe outra táboa, que non contén a información que está a buscar, pero ten unha columna común coa táboa principal e outra columna común coa táboa de busca.
Na imaxe de abaixo ilustra a situación:
O obxectivo é copiar os prezos na táboa principal en función de ID de elementos . O problema é que a táboa que contén os prezos non ten os ID de artigos , o que significa que teremos que facer dúas consultas virtuales nunha soa fórmula.
Por comodidade, creemos un par de rangos nomeados primeiro:
- A táboa de busca 1 chámase Produtos (D3:E10)
- A táboa de busca 2 chámase Prezos ( G3:H10 )
As táboas poden estar na mesma ou en follas de traballo diferentes.
E agora, realizaremos a chamada Doble Vlookup , tamén coñecido como Anidado Vlookup .
Primeiro, fai unha fórmula VLOOKUP para atopar o nome do produto na táboa de busca 1 (chamada Produtos ) en función do elemento id (A3):
=VLOOKUP(A3, Products, 2, FALSE)
A continuación, coloque a fórmula anterior no argumento lookup_value doutra función VLOOKUP para extraer os prezos da táboa de busca 2 (chamada Prezos ) en función do nome do produto devolto polo VLOOKUP anidado:
=VLOOKUP(VLOOKUP(A3, Products, 2, FALSE), Prices, 2, FALSE)
A seguinte captura de pantalla mostra a nosa fórmula Vlookup anidada en acción:
Como buscar varias follas de forma dinámica
Ás veces, y Pode ter datos no mesmo formato divididos en varias follas de traballo. E o teu obxectivo é extraer datos dunha folla específica dependendo do valor da chave nunha determinada cela.
Isto pode ser máis fácil de entender a partir dun exemplo. Digamos que tes algúns informes de vendas rexionais no mesmo formato e queres obter as cifras de vendas dun produto específico en determinados