COINCIDENCIA DE ÍNDICE VBA en base a varios criterios en Excel (3 métodos)

  • Comparte Isto
Hugh West

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.

Hugh West é un adestrador e analista de Excel altamente experimentado con máis de 10 anos de experiencia na industria. É Licenciado en Contabilidade e Finanzas e Máster en Administración de Empresas. Hugh ten unha paixón polo ensino e desenvolveu un enfoque docente único que é fácil de seguir e comprender. O seu coñecemento experto de Excel axudou a miles de estudantes e profesionais de todo o mundo a mellorar as súas habilidades e a destacar nas súas carreiras. A través do seu blog, Hugh comparte os seus coñecementos co mundo, ofrecendo titoriais de Excel gratuítos e formación en liña para axudar ás persoas e ás empresas a alcanzar todo o seu potencial.