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.