Ir al contenido principal

Una alternativa a la función BUSCARV en Excel

Como seguramente sabes, la función BUSCARV es una de las funciones más utilizadas en Excel y es de gran ayuda para buscar valores dentro de una lista. Sin embargo esta función tiene una restricción que puede ponerte en aprietos.

Condición para utilizar la función BUSCARV

La condición que tenemos para utilizar la función BUSCARV es que el valor que estamos buscando debe estar en la primera columna del rango de datos y esta condición se debe de cumplir siempre. En la siguiente imagen puedes observar cómo utilizo fácilmente la función BUSCARV para encontrar el total de la factura 8975:
Una alternativa a la función BUSCARV en Excel
Sin embargo, si deseo encontrar el valor de la factura por el nombre de cliente no será posible utilizar la función BUSCARV ya que la columna Cliente no es la primera columna de la tabla. Por supuesto, una opción sería modificar la tabla de datos y mover la columna C como la primera columna, pero en ocasiones no podemos hacer dicho movimiento.
En esta ocasión te mostraré una alternativa que podemos aplicar haciendo uso de la función INDICE y de la función COINCIDIR para obtener el resultado deseado.

Función INDICE y COINCIDIR en lugar de BUSCARV

La función COINCIDIR nos devolverá la posición que tiene el valor que estamos buscando. Observa cómo utilizo dicha función para encontrar la posición del cliente “Apple”:
Función COINCIDIR en lugar de BUSCARV en Excel
La función COINCIDIR me devuelve correctamente la posición 3 para el cliente que estoy buscando.  Solamente resta utilizar la función INDICE para obtener el valor de la columna Total que le corresponde.
La función INDICE nos devuelve el valor de una celda con tan solo especificar el número de fila y de columna. Ya con la función COINCIDIR obtuvimos el número de fila que buscamos, así que solo debemos indicar la columna que necesitamos:
Función INDICE en lugar de BUSCARV en Excel
Como primer argumento de la función INDICE he colocado el mismo rango que utilicé con la función BUSCARV. El segundo argumento es el resultado de la función COINCIDIR que me devolverá la fila 3 y en el último argumento he indicado que deseo la columna 4 del rango especificado.
Con esta solución hemos creado un comportamiento similar a la función BUSCARV pero sin la restricción de tener que utilizar siempre la primera columna de la tabla.

Comentarios

Entradas más populares de este blog

Validación masiva de RFC's de contribuyentes para el CFDI 4.0

Si eres Contador o has manejado la plataforma del SAT entonces creo que estamos hablando el mismo lenguaje, y como siempre Soluciones MS Excel VBA , busca automatizar tu trabajo y que tu día sea mucho mas productivo. Te dejo un archivo de Excel en donde puedes crear el archivo de texto de forma automatizada tal cual como solicita el SAT: El funcionamiento de esta herramienta es relativamente fácil de utilizar, basta con pegar la información a partir de la celda ( B1, C1 y D1 ) , en donde la celda: B = RFC C = Nombre D = Código Postal si no cumple con uno de estos criterios, nos marca el siguiente mensaje: Cumpliendo con los criterios ya mencionados, basta con darle Click en la opción Exportar: Y de forma automática genera el archivo de texto que se llama que por default lo guarda según en donde tengas esta herramienta.   Descargar Herramienta Nota: Probablemente te aparezca algún mensaje que la macro se ha bloqueado , y para que funcione la herramienta sigue los pasos que se en...

Convertir números a letras

Te muestro como crear tu propia función para convertir números a letras , esto puede serte de mucha utilidad si usas Excel para imprimir  reportes en los que debas ingresar un numero en letras. Primero ingresa a VBA presionando las teclas Alt+F11, e inserta un Modulo (Si ya tienes un modulo no necesitas insertar uno nuevo)   Ahora selecciona tu modulo ( Module1 ) Y en la ventana derecha ingresa este texto: Function NumLetras(Valor As Currency, Optional MonedaSingular As String = "", Optional MonedaPlural As String = "") As String Dim lyCantidad As Currency, lyCentavos As Currency, lnDigito As Byte, lnPrimerDigito As Byte, lnSegundoDigito As Byte, lnTercerDigito As Byte, lcBloque As String, lnNumeroBloques As Byte, lnBloqueCero Dim laUnidades As Variant, laDecenas As Variant, laCentenas As Variant, I As Variant 'Si esta como Option Explicit Dim ValorEntero As Long     Valor = Round(Valor, 2)     lyCantidad = Int...

Concatenar textos en un solo textbox

Como su mismo nombre lo dice, es un código que concatena varios textbox en un solo textbox. espero les sirva de algo       Descargar Archivo

Ejemplos de formato condicional en Excel 2013

En esta ocasión realizaremos algunos ejemplos de formato condicional en Excel 2013 para dejar en claro el potencial y ventajas de uso que nos ofrece esta funcionalidad al momento de analizar nuestros datos. Formato condicional en números Cuando los datos de nuestras celdas son valores numéricos, Excel provee de varias opciones para aplicar un formato condicional rápidamente. Las primeras alternativas que analizaremos serán las que se encuentran en Inicio > Estilos > Formato condicional > Resaltar reglas de celdas. Sabiendo que nuestros datos son valores numéricos, podemos utilizar las siguientes opciones: Es mayor que : Se aplicará el formato a todas las celdas con un valor mayor al especificado. En menor que : El formato será aplicado a las celdas con un valor menor que el indicado. Entre : Excel evaluará las celdas para saber aquellas que tengan un valor dentro del rango indicado y se les aplicará el formato. Es igual a : Solo las celdas que sean iguales a...

Generar datos aleatorios con macro "Totalmente Gratis"

Has tu pedido por el correo electronico  solucionesmsexcelvba@gmail.com Los números aleatorios son utilizados en programas de simulación por computadora, en el muestreo estadístico, criptografía de datos y por supuesto en los juegos de azar. Cualquier área que necesite resultados impredecibles hará uso de los números aleatorios.

Asignar nombres a celdas o rangos

Asignar un nombre a un rango de celdas Estos nombres se pueden utilizar dentro de una fórmula para ayudar en la compresión de la misma posteriormente. Para asignar  un nombre a una celda sigue los siguientes pasos. Selecciona la celda o rango a la que asignarás un nombre y haz clic en el cuadro Nombre que se encuentra en el extremo izquierdo de la barra de fórmulas: Escribe el nombre que deseas y presiona Entrar. Otra manera de crear un nombre para un rango es desde la ficha Fórmulas y el botón Asignar nombre . Una vez que hayas seleccionado el rango de celdas oprime este botón y se mostrará el cuadro de diálogo Nombre nuevo : En la caja de texto Nombre coloca el nombre que asignarás a la celda o rango y oprime el botón Aceptar. Utilizar un nombre en una fórmula Como ejemplo final utilizaré el nombre que acabamos de crear dentro de una fórmula para que observes cómo Excel interpreta correctamente el nuevo nombre del rango, observa la barra de fórmul...

Función MIN y MAX

La función MIN y MAX en Excel La función MIN o MAX en Excel nos devuelve el valor mínimo o el valor maximo de un conjunto de valores. Los argumentos de la función MIN o MAX pueden ser los números, las celdas o los rangos que contienen los valores que deseamos evaluar.

Como separar NOMBRES y APELLIDOS con UDF en Excel

 Aquí te dejo un UDF para separar los nombres y apellidos en Excel: La dificultad principal para separar nombres y apellidos en Excel es la cantidad de variantes que pueden existir en los nombres de las personas lo cual hace necesario analizar cada caso específico para utilizar el procedimiento adecuado: y para eso necesitamos realizar ciertos procedimientos, a continuación te presento: Paso 1: Abre un libro de excel y abrir el editor de con el teclado ALT + F11, insertamos un módulo y pegamos el siguiente código: 'Function NOMBRE(AP As Range) As String 'Dim nombreArr() As String 'Dim nuevaCadena As String 'Dim i As Integer 'nombreArr = Split(Trim(AP.Value)) 'For i = 0 To UBound(nombreArr) '    Select Case LCase(nombreArr(i)) '        Case "de", "del", "la", "las", "los", "san" '            nuevaCadena = nuevaCadena & nombreArr(i) & " " '    ...

Función REDONDEAR

La función REDONDEAR en Excel nos ayuda a redondear un número a una cantidad de decimales  especificados. La cantidad de decimales especificados puede ser un número positivo, negativo o cero. Sintaxis de la función REDONDEAR La función REDONDEAR tiene dos argumentos obligatorios: Número ( obligatorio ): El número que va a ser redondeado. Núm_decimales ( obligatorio ): La cantidad de decimales a la que se desea redondear. Ejemplos de la función REDONDEAR En la celda A1 tengo el valor 16.475 y utilizaré la función REDONDEAR con diferentes valores para el segundo argumento de manera que podamos observar la diferencia. Cuando el segundo argumento de la función REDONDEAR es mayor a cero entonces el número se redondea a la cantidad de decimales especificada. Si colocamos un cero como segundo argumento, entonces se redondeará hacia el número entero más próximo. Por el contrario, si especificamos un número negativo, entonces la función REDONDEAR hace el redondeo h...