UDF: eXl_BUSCARX alternativa a versiones anteriores a Excel 2021 (Función BUSCARX)

0

 


La función eXl_BUSCARX es una función personalizada de VBA que se ha creado con el propósito de brindar una alternativa similar de la función BUSCARX para las versiones de Excel que no cuentan con dicha función. 


La sintaxis de la función eXl_BUSCARX es:


eXl_BUSCARX(ValorBuscado, MatrizBuscada, MatrizDeVuelta, [SiNoSeEncuentra], [Coincidencia])


donde


ValorBuscado: Es el valor que deseas buscar en la matriz de búsqueda.


MatrizBuscada: Es la matriz en la que se realizará la búsqueda del valor.


MatrizDeVuelta: Es la matriz desde la cual se obtendrá el valor correspondiente si se encuentra una coincidencia.


SiNoSeEncuentra (opcional): Es el valor que se devolverá si no se encuentra el valor buscado. Si no se proporciona, se utilizará el valor predeterminado "No se encontró el valor.".


Coincidencia (opcional): Es un valor booleano que indica si se debe buscar una coincidencia exacta (1) o una coincidencia aproximada (0). Si no se proporciona, se utilizará el valor predeterminado 1 (coincidencia exacta).


Funcionalidad

La función primero asigna los argumentos a las variables locales. Luego, utiliza la función Match de Excel para buscar el ValorBuscado en la MatrizBuscada. Dependiendo del valor del argumento Coincidencia, se especifica el tipo de coincidencia en la función Match (1 para coincidencia exacta y 0 para coincidencia aproximada).


Si se encuentra un resultado válido (es decir, no se produce un error), la función utiliza la función INDICE de Excel para obtener el valor correspondiente en la MatrizDeVuelta. Si no se encuentra el valor, se asigna el valor especificado en el argumento opcional SiNoSeEncuentra.


Finalmente, la función asigna el valor B como el valor de retorno de la función eXl_BUSCARX.


Código


Function eXl_BUSCARX(ByVal ValorBuscado As Variant, ByVal MatrizBuscada As Range, ByVal MatrizDeVuelta As Range, Optional ByVal SiNoSeEncuentra As String = "No se encontró el valor.", Optional ByVal Coincidencia As Boolean = True) As Variant

    Dim VB As Variant, MB As Range, MV As Range, B As Variant, P As Variant

    VB = ValorBuscado

    Set MB = MatrizBuscada

    Set MV = MatrizDeVuelta

    P = Application.Match(VB, MB, IIf(Coincidencia, 0, 1))

    If Not IsError(P) Then

        B = Application.Index(MV, P)

    Else

        B = SiNoSeEncuentra

    End If

    eXl_BUSCARX= B

End Function


👉 Como hacer que la UDF (User Defined Functions) esté disponible como una Función Nativa de Excel


⭐ Si te gustó, por favor regístrate en nuestra Lista de correo y Suscríbete a mi canal de YouTube para que estés siempre enterado de lo nuevo que publicamos.


Entradas que pueden interesarte

Sin comentarios

Etiquetas:
#aprendiendoexcel365, #josealcaldealias, #Excel, #funciones, #UDF, #Visual Basic, #VBA, #DAX, #Tips, #Basico, #Microsoft Excel, #Cursos Excel OnLine, #Aprende Excel, #Aprende Excel OnLine, #Excel 365, #Power Pivot, #Power BI, #Power Query, #Google Sheets, #Macros, #Código VBA, #Tutoriales Excel, #MTV, #Vbscript, #TypeScript, #Lenguaje M, #fórmulas, #funciones, #paso a paso, #funciones Excel, #libros, #tablas, #formatos, #hojas, #datos, #gráfico, #análisis de datos, #base de datos, #dashboards, #tablas dinámicas, #excel desde cero, #hoja de cálculo, #plantillas de Excel