Millora de la funciĆ³ VLOOKUP

contingut

Com empaquetar correctament un paracaigudes?

Benefici. EdiciĆ³ 2, revisada.

Suposem que tenim la segĆ¼ent taula d'ordres:

Millora de la funciĆ³ VLOOKUP

Hem de saber, per exemple, quin va ser l'import de la tercera comanda d'Ivanov o quan Petrov va executar el seu segon acord. La funciĆ³ VLOOKUP integrada nomĆ©s pot cercar la primera ocurrĆØncia del cognom a la taula i no ens ajudarĆ . Preguntes com "Qui era el gerent de la comanda nĆŗmero 10256?" tambĆ© romandrĆ  sense resposta, tk. la VLOOKUP integrada no Ć©s capaƧ de retornar valors de les columnes a l'esquerra de la cerca.

Tots dos problemes es resolen d'un sol cop: anem a escriure la nostra prĆ²pia funciĆ³ que buscarĆ  no nomĆ©s la primera, sinĆ³, en el cas general, la enĆØsima ocurrĆØncia. A mĆ©s, podrĆ  cercar i produir resultats en qualsevol columna. Diguem-ho, per exemple, VLOOKUP2. 

Obriu l'Editor de Visual Basic prement ALT+F11 o seleccionant al menĆŗ Servei ā€“ Macro ā€“ Editor Visual Basic (Eines ā€” Macro ā€” Editor Visual Basic), inseriu un mĆ²dul nou (menĆŗ Inserir ā€“ MĆ²dul) i copieu-hi el text d'aquesta funciĆ³:

FunciĆ³ VLOOKUP2 (Taula com a variant, SearchColumnNum com a llarg, SearchValue com a variant, _ N com a llarg, ResultColumnNum com a llarg) Dim i As Long, iCompta com a llarg Seleccioneu el tipus de cas Nom(Taula) Cas "Range" Per a i = 1 A taula.Files .Count If Table.Cells(i, SearchColumnNum) = SearchValue Then iCount = iCount + 1 End If If iCount = N Then VLOOKUP2 = Table.Cells(i, ResultColumnNum) Exit For End If Next i Case "Variant()" For i = 1 a UBound(Table) If Table(i, SearchColumnNum) = SearchValue Aleshores iCount = iCount + 1 If iCount = N Aleshores VLOOKUP2 = Table (i, ResultColumnNum) Sortir per a final Si el segĆ¼ent i Finalitzar SelecciĆ³ de la funciĆ³ de finalitzaciĆ³  

Tanqueu l'Editor de Visual Basic i torneu a Excel.

Ara a travĆ©s Inserir - FunciĆ³ (Insereix ā€” FunciĆ³) en categoria Usuari definit (Usuari definit) podeu trobar la nostra funciĆ³ VLOOKUP2 i utilitzar-la. La sintaxi de la funciĆ³ Ć©s la segĆ¼ent:

=VLOOKUP2(taula; nombre_de_columnes_on_busquem; valor_de_cerca; N; nombre_de_columnes_de_a_obtenir_el_valor)

Ara les limitacions de la funciĆ³ estĆ ndard no ens sĆ³n un obstacle:

Millora de la funciĆ³ VLOOKUP

PS AgraĆÆment especial a The_Prist per millorar la funciĆ³ perquĆØ pugui cercar en llibres tancats.

  • Cercar i substituir dades d'una taula a una altra mitjanƧant la funciĆ³ BUSCAR V
  • "Cerca V esquerra" mitjanƧant les funcions INDEX i MATCH

 

Deixa un comentari