Taula de continguts
Quan tenim una gran quantitat de dades, de vegades és difícil extreure dades específiques del conjunt de dades. Juntament amb les funcions INDEX i MATCH d'Excel, podeu recuperar qualsevol tipus de dades, fins i tot en un conjunt de dades enorme. La implementació de VBA és el mètode més eficaç, ràpid i segur per executar qualsevol operació a Excel. En aquest article, us mostrarem 3 mètodes diferents sobre com dur a terme INDEX MATCH en funció de diversos criteris a Excel amb la macro VBA .
Baixa Quadern de treball
Podeu descarregar el quadern de treball d'Excel de pràctiques gratuïtes des d'aquí.
Concordança d'índex VBA basada en criteris múltiples.xlsm
3 mètodes amb VBA INDEX MATCH basat en diversos criteris a Excel
A les seccions següents, us mostrarem com realitzar INDEX MATCH en funció de diversos criteris per a un interval , per a una selecció específica i per a una taula a Excel amb VBA .
A dalt tenim el conjunt de dades que seguirà aquest article. Tenim el Nom de l'estudiant , ID de l'estudiant, i Notes d'examen de cada estudiant del conjunt de dades. Extraurem un determinat resultat que resideix en una columna en funció de les condicions de les altres dues columnes.
Criteris – 1: incrustar VBA amb INDEX MATCH per a la cerca multidimensional (bidimensional) a Excel
Considereu la imatge següent. Hem emmagatzemat el nom d'un estudiant específic " Edge" a Cel·laG4 ; i la columna on cercarem el Resultat , Notes d'examen , s'emmagatzema a la Cel·la G5 . Cercarem a la columna Notes d'examen i emmagatzemarem les Notes que va obtenir “ Marge” a la Cel·la G6 .
Els passos per cercar donen com a resultat una matriu bidimensional amb INDEX i MATCH a Excel amb VBA es mostren a continuació.
Passos:
- Al principi, premeu Alt + F11 al teclat o aneu a la pestanya Desenvolupador -> Visual Basic per obrir Visual Basic Editor .
- A continuació, a la finestra de codi emergent, des del barra de menú, feu clic a Insereix -> Mòdul .
- A continuació, copieu el codi següent i pegueu-lo al codi finestra.
9485
El vostre codi ja està a punt per executar-se.
- Ara, premeu F5 al vostre teclat o des de la barra de menú seleccioneu Executar -> Executeu Sub/UserForm . També podeu fer clic a la icona d'execució petita a la barra del submenú per executar la macro.
Després de l'execució del codi, mireu el gif de sota per veure el resultat.
Com a resultat, les Marques que " Veste" va obtenir a la l'examen, 67 , es recupera a la Cel·la G7 .
Explicació del codi VBA
9259
Definició de la variable del full de treball.
6932
Desa el nom del full de treball. El nom del nostre full és "Two Dimension", heu de proporcionarel nom segons el vostre full de càlcul.
8411
Aquest fragment de codi selecciona l'interval C5:D14 com a interval de cerca. A continuació, cerqueu la coincidència emmagatzemada a la cel·la G4 a l'interval B5:B14 i cerqueu la coincidència emmagatzemada a la cel·la G5 a l'interval C4:D4 i passeu el resultat a la cel·la G6 .
Més informació: Com utilitzar INDEX MATCH amb diversos criteris per a l'interval de dates
Criteris – 2: Aplicar una macro per trobar el valor de concordança per INDEX amb la funció definida per l'usuari (UDF)
Podeu extreure valors coincidents d'un conjunt de dades amb un funció definida per l'usuari (UDF) . A partir de la següent imatge, el que farem és, passarem el ID de l'estudiant i les Notes d'examen d'un determinat alumne i la funció ens llançarà el Nom d'aquest estudiant específic.
Vem a veure com aconseguir-ho per a Nom de l'estudiant "Finn" amb VBA .
Passos:
- Com es mostra abans, obriu Visual Basic Editor des de la pestanya Desenvolupador i Inseriu un mòdul a la finestra del codi.
- A continuació, a la finestra del codi, copieu el codi següent i pegueu-lo .
1420
- No executeu aquest codi, deseu el.
- Ara, torneu al full de treball d'interès. Trieu qualsevol cel·la que vulgueu emmagatzemar el resultat. En el nostre cas, és Cel·la F5 .
- En aquesta cel·la, escriviu el UDF queacaben de crear el codi ( MatchByIndex ) i passar l'identificador d'estudiant i les notes de l'examen de l'estudiant específic dins dels parèntesis de la funció.
Com estem intentant extreure el nom " Finn" del seu ID (105) i Marks (84) , de manera que per al nostre cas la fórmula es converteix en
=MatchByIndex(105,84)
- A continuació, premeu Retorn .
Mireu la imatge següent.
A Cel·la F5 , hem recuperat correctament el nom " Finn" simplement passant el seu ID i Marques dins de la funció que hem creat al codi VBA .
Explicació del codi VBA
7022
Crear una funció nova i passar-hi les variables. Podeu definir qualsevol nom a la funció.
3264
La nostra fila comença a partir del número de fila 4. Heu de proporcionar el número de fila des del qual comença el vostre conjunt de dades.
8934
Definició de les variables.
7707
Primer, definiu el full de treball amb el qual treballareu. El nom del nostre full és "UDF", heu de proporcionar el nom segons el vostre full de càlcul. A continuació, comenceu a cercar a l'interval C:D des de la primera fila que hem definit fins a l'última fila.
4181
Comenceu a iterar des de la primera fila fins a l'última fila. Si el primer valor que passarem dins de la funció cau dins de la columna C i si el segon valor que passarem dins de la funció cau dins de la columna D , tornarà elcoincidència de la columna B . En cas contrari, sortiu de la funció, finalitzeu totes les declaracions i aneu a la línia següent.
3707
Si la condició anterior no es compleix durant l'execució, es retornarà el missatge "Data Not Found" i el el codi deixarà la funció.
Llegir més: INDEX-COORDINACIÓ amb criteris múltiples per a text parcial a Excel (2 vies)
Criteris – 3: implementar VBA per retornar el valor MATCH d'una taula amb múltiples dades a Excel
En aquesta secció, aprendrem a retornar un valor coincident amb els índexs d'una taula al MsgBox a VBA Excel.
Vegem com extreure les Marques de la taula que es mostra al nostre conjunt de dades ( T nom capaç: TableMatch ) d'un estudiant determinat proporcionant el Nom i l' ID dins del codi. Per al nostre cas, el Nom i l' ID seran Finn i 105 respectivament.
Passos :
- Primer, obriu Visual Basic Editor des de la pestanya Desenvolupador i Insereix un mòdul a la finestra del codi.
- A continuació, copieu el codi següent i enganxeu-lo a la finestra del codi.
2901
El vostre codi ara està llest per executar-se.
- Més endavant, Executeu aquest codi i mireu la imatge següent per veure què va passar com a resultat.
Com podeu veure a la imatge de dalt, hi ha un Microsoft Excel pop-quadre de missatge amunt que us mostra les Marques: 84 de l' ID: 105 i el Nom: Finn que hem proporcionat dins del codi.
Explicació del codi VBA
7503
Definició de les variables.
3371
Configuració del nom del full i el nom de la taula dins de les variables.
4634
Emmagatzematge els valors de cerca i les columnes de cerca per cercar.
5134
Aquest fragment de codi escaneja des de l'inici fins al final del subíndex i si troba la coincidència de l'identificador definit i el nom a les columnes de cerca, aleshores emmagatzemar el resultat i tancar totes les declaracions. A més, sortiu de la iteració i aneu a la següent part del codi.
6022
Llança el resultat al MsgBox.
Més informació: Buscar i retornar Múltiples valors concatenats en una sola cel·la a Excel
Conclusió
Per concloure, aquest article us mostra 3 mètodes diferents sobre com realitzar CONCORDACIÓ ÍNDICE basada en en diversos criteris a Excel amb la macro VBA . Espero que aquest article us hagi estat molt profitós. No dubteu a fer qualsevol pregunta sobre el tema.