Mellorando a funciĆ³n BUSCAR V

Contidos

Como embalar correctamente un paracaĆ­das?

Beneficio. EdiciĆ³n 2, revisada.

Digamos que temos a seguinte tƔboa de pedidos:

Mellorando a funciĆ³n BUSCAR V

Necesitamos saber, por exemplo, cal foi o importe do terceiro pedido de Ivanov ou cando Petrov executou o seu segundo acordo. A funciĆ³n VLOOKUP integrada sĆ³ pode buscar a primeira apariciĆ³n do apelido na tĆ”boa e non nos axudarĆ”. Preguntas como "Quen era o xestor da orde nĆŗmero 10256?" tamĆ©n permanecerĆ” sen resposta, tk. o VLOOKUP integrado non Ć© capaz de devolver valores das columnas Ć” esquerda da busca.

Estes dous problemas resĆ³lvense dunha soa vez: escribamos a nosa propia funciĆ³n que buscarĆ” non sĆ³ a primeira, senĆ³n, no caso xeral, a enĆ©sima ocorrencia. Ademais, poderĆ” buscar e producir resultados en calquera columna. ChamĆ©moslle, por exemplo, BUSCARV2. 

Abra o Editor de Visual Basic premendo ALT+F11 ou seleccionando no menĆŗ Servizo ā€“ Macro ā€“ Editor de Visual Basic (Ferramentas ā€” Macro ā€” Editor de Visual Basic), inserir un novo mĆ³dulo (menĆŗ Inserir ā€“ MĆ³dulo) e copia alĆ­ o texto desta funciĆ³n:

FunciĆ³n VLOOKUP2(TĆ”boa como variante, SearchColumnNum como longo, SearchValue como variante, _ N como longo, ResultColumnNum como longo) Dim i As Long, iCount As Long Seleccione Case TypeName(TĆ”boa) Case "Range" For i = 1 To Table.Rows .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 To UBound(Table) If Table(i, SearchColumnNum) = SearchValue EntĆ³n iCount = iCount + 1 If iCount = N Then VLOOKUP2 = Table (i, ResultColumnNum) SaĆ­r para o final Se segue i End Seleccionar funciĆ³n final  

Pecha o Editor de Visual Basic e volve a Excel.

Agora pasou Inserir - FunciĆ³n (Inserir ā€” FunciĆ³n) na categorĆ­a Definido polo usuario (Definido polo usuario) podes atopar a nosa funciĆ³n VLOOKUP2 e usala. A sintaxe da funciĆ³n Ć© a seguinte:

=VLOOKUP2(tĆ”boa; nĆŗmero_de_columnas_onde_buscamos; valor_busca; N; nĆŗmero_de_columnas_de_a_obter_valor)

Agora as limitaciĆ³ns da funciĆ³n estĆ”ndar non son un obstĆ”culo para nĆ³s:

Mellorando a funciĆ³n BUSCAR V

PS Agradecemento especial a The_Prist por mellorar a funciĆ³n para que poida buscar en libros pechados.

  • Buscar e substituĆ­r datos dunha tĆ”boa a outra mediante a funciĆ³n BUSCAR V
  • "BUSCAR V ESQUERDA" usando as funciĆ³ns INDEX e MATCH

 

Deixe unha resposta