Táboa de contidos
Cando temos unha gran cantidade de datos, ás veces é difícil extraer datos específicos do conxunto de datos. Xunto coas funcións INDEX e MATCH de Excel, pódense recuperar calquera tipo de datos mesmo nun conxunto de datos enorme. Implementar VBA é o método máis eficaz, rápido e seguro para executar calquera operación en Excel. Neste artigo, mostrarémosche 3 métodos diferentes sobre como realizar COINCIDENCIA DE ÍNDICE en función de varios criterios en Excel coa macro VBA .
Descargar Caderno de traballo
Podes descargar o libro de exercicios de Excel de práctica gratuíta desde aquí.
COINCIDENCIA DE ÍNDICE VBA en base a varios criterios.xlsm
3 métodos con COINCIDENCIA DE ÍNDICE VBA en base a varios criterios en Excel
Nas seguintes seccións, mostrarémosche como realizar COINCIDENCIA DE ÍNDICE en función de varios criterios para un intervalo , para unha selección específica e para unha táboa en Excel con VBA .
Arriba temos o conxunto de datos que seguirá este artigo. Temos o Nome do estudante , ID do estudante, e Nomes do exame de cada alumno do conxunto de datos. Extraeremos un determinado resultado que reside nunha columna en función das condicións das outras dúas columnas.
Criterios – 1: Incrustar VBA con INDEX MATCH para a busca multidimensional (dous) en Excel
Considera a seguinte imaxe. Almacenamos o nome dun alumno específico " Edge" na CelaG4 ; e a columna na que buscaremos o Resultado , Notas do exame , gárdase na Cela G5 . Buscaremos na columna Notas do exame e almacenaremos as Marcas que obtivo " Edge" na Cela G6 .
Os pasos para buscar resultan nunha matriz bidimensional con INDEX e MATCH en Excel con VBA aparecen a continuación.
Pasos:
- Ao principio, preme Alt + F11 no teclado ou vai a a pestana Desenvolvedor -> Visual Basic para abrir Editor de Visual Basic .
- A continuación, na xanela de código emerxente, desde o barra de menú, faga clic en Inserir -> Módulo .
- A continuación, copie o seguinte código e pégueo no código xanela.
4839
O teu código xa está listo para executarse.
- Agora, preme F5 no teu teclado ou na barra de menú seleccione Executar -> Executar Sub/UserForm . Tamén pode facer clic na icona Executar pequena na barra do submenú para executar a macro.
Despois da execución do código, mira o gif de abaixo para ver o resultado.
Como resultado, as Marcas que obtivo “ Edge” no o exame, 67 , obtense na Cela G7 .
Explicación do código VBA
6706
Definindo a variable da folla de traballo.
4538
Almacenar o nome da folla de traballo. O nome da nosa folla é "Dúa dimensión", debes proporcionaro nome segundo a túa folla de cálculo.
7261
Esta peza de código selecciona o intervalo C5:D14 como intervalo de busca. A continuación, busque a coincidencia almacenada na cela G4 no intervalo B5:B14 e busque a coincidencia almacenada na cela G5 no intervalo C4:D4 e pase o resultado á cela G6 .
Ler máis: Como usar INDEX MATCH con varios criterios para o intervalo de datas
Criterios – 2: Aplicar macro para buscar o valor MATCH por INDEX con función definida polo usuario (UDF)
Podes extraer valores coincidentes dun conxunto de datos cun función definida polo usuario (UDF) . A partir da seguinte imaxe, o que imos facer é aprobar o Identificación do alumno e as Notas do exame dun determinado alumno e a función botaranos o Nome dese alumno específico.
Imos ver como conseguilo para Nome do alumno “Finn” con VBA .
Pasos:
- Como se mostra antes, abra o Editor de Visual Basic desde a pestana Desenvolvedor e Insira un Módulo na xanela do código.
- A continuación, na xanela do código, copie o seguinte código e pégueo .
5240
- Non executes este código, gárdao .
- Agora, volve á folla de traballo de interese. Escolle calquera cela que desexe gardar o resultado. No noso caso, é a Cela F5 .
- Nesa cela, escribe o UDF queacaban de crear o código ( MatchByIndex ) e pasan o ID do alumno e as notas do exame do alumno específico entre os parénteses da función.
Como estamos tentando extraer o nome " Finn" do seu ID (105) e Marks (84) , polo que no noso caso a fórmula pasa a ser,
=MatchByIndex(105,84)
- A continuación, prema Intro .
Mira a seguinte imaxe.
Na Cela F5 , recuperamos correctamente o nome " Finn" simplemente pasando o seu ID e Marcas dentro da función que creamos no código VBA .
Explicación do código VBA
3792
Crear unha nova función e pasar as variables dentro dela. Podes definir calquera nome para a función.
3478
A nosa fila comeza a partir do número de fila 4. Debes proporcionar o número de fila do que comeza o teu conxunto de datos.
2111
Definición das variables.
6008
Primeiro, define a folla de traballo coa que traballar. O nome da nosa folla é "UDF", debes proporcionar o nome segundo a túa folla de cálculo. A continuación, comeza a buscar no intervalo C:D desde a primeira fila que definimos ata a última fila.
7768
Comeza a iterar desde a primeira fila ata a última fila. Se o primeiro valor que pasaremos dentro da función cae dentro da columna C e se o segundo valor que pasaremos dentro da función cae dentro da columna D , entón volverá ocoincidencia da columna B . En caso contrario, saia da función, remate todas as instrucións e vai á liña seguinte.
7074
Se a condición anterior non se cumpre durante a execución, devolverase a mensaxe "Datos non atopados" e o o código deixará a función.
Ler máis: INDEX-COINCER con varios criterios para o texto parcial en Excel (2 xeitos)
Criterios – 3: implementar VBA para devolver o valor MATCH dunha táboa con varios datos en Excel
Nesta sección, aprenderemos a devolver un valor coincidente polos índices dunha táboa no MsgBox en VBA Excel.
Imos ver como extraer as Marcas da táboa que se mostra na nosa conxunto de datos ( T Nome capaz: TableMatch ) dun determinado alumno proporcionando o Nome e o ID dentro do código. No noso caso, o Nome e o ID serán Finn e 105 respectivamente.
Pasos :
- Primeiro, abre o Editor de Visual Basic desde a pestana Desenvolvedor e Insire un módulo na xanela do código.
- A continuación, copie o seguinte código e pégueo na xanela do código.
2516
O seu código agora está listo para executarse.
- Máis tarde, executa este código e mira a seguinte imaxe para ver o que pasou como resultado.
Como podes ver na imaxe superior, hai un Microsoft Excel emerxente.cadro de mensaxe arriba que che mostra as Marcas: 84 de ID: 105 e Nome: Finn que proporcionamos dentro do código.
Explicación do código VBA
5906
Definición das variables.
6304
Configuración do nome da folla e do nome da táboa dentro das variables.
8373
Almacenamento os valores de busca e as columnas de busca para buscar.
5740
Esta peza de código explora desde o principio ata o final do subíndice e se atopa a coincidencia do ID definido e do Nome nas columnas de busca, entón almacena o resultado e pecha todas as declaracións. Ademais, sae da iteración e vai á seguinte parte do código.
2736
Lanza o resultado no MsgBox.
Ler máis: Buscar e devolver Varios valores concatenados nunha cela en Excel
Conclusión
Para concluír, este artigo mostrouche 3 métodos diferentes sobre como realizar COINCIDENCIAS DE ÍNDICE en varios criterios en Excel coa macro VBA . Espero que este artigo che resultou moi beneficioso. Non dubides en facer calquera dúbida sobre o tema.