La función BUSCARV nos permite encontrar un determinado valor en una base de datos o en un rango determinado de Excel, y dicha función la podemos condicionar según el criterio que se requiera.
BUSCARV con condicional.
Supongamos que necesitamos averiguar cuánto nos adeuda un determinado cliente solo si este tiene una mora de 30 o más días. Si su mora es de menos de 30 días, no necesitamos que la función haga la búsqueda.
Vamos a suponer que en la columna A se tiene el nombre del cliente y en la B el valor de su deuda. Supongamos ahora que en la celda C2 tenemos los días de mora del cliente, valor que se puede obtener mediante una función BUSCARV. La fórmula sería:
=SI(C2>=30;BUSCARV("Tomas";A2:B10;2);0)
La fórmula está compuesta de dos partes. La primera corresponde al condicional (SI(C2>=30)) y la segunda a la función BUSCARV como tal (BUSCARV("Tomas";A2:B10;2)). Si la condición se cumple, esto es, la mora es igual o superior a 30 días, la función BUSCARV hará su trabajo y traerá el resultado o valor que le corresponde al valor buscado (deuda del cliente). Si no se cumple, arrojará 0 como resultado.
Explicación de la fórmula BUSCARV.
La función BUSCARV (BUSCARV("Tomas";A2:B10;2)) contiene en primer lugar el valor de referencia a buscar (Tomas en este caso), valor que debe buscar en el rango A2:B10, y el valor que debe llamar o traer, es decir, la deuda que tiene, que se encuentra en la columna siguiente (2).
Recordemos que el nombre del cliente está en A y su deuda en B, y es la deuda que nos interesa traer si se cumple el criterio de días de mora.
En lugar de escribir el nombre del cliente que nos interesa, podemos llamarlo desde una celda, supongamos D2, y en tal caso la fórmula sería:
=SI(C2>=30;BUSCARV(D2;A2:B10;2);0)
Esta fórmula se puede complicar más según lo que necesitemos, puesto que en la misma podemos agregar, por ejemplo, el cálculo automático de intereses según el tiempo de mora, pero eso será para una próxima oportunidad.
BUSCARV con dos condiciones.
El anterior ejemplo incluye una condición, que C2 sea mayor o igual que 30, pero podemos agregar una segunda condición, que C2 debe ser menor a 90.
En tal caso, la fórmula sería así:
=SI(Y(F7>=30;F7<90);BUSCARV(E7;A3:C11;3);0)
La función BUSCARV solo se ejecutará si se cumplen esas dos condiciones, y si no se cumplen las dos, o solo una, Excel colocará cero, lo que ejecutará la acción que se le indique en la fórmula.
BUSCARV con dos criterios.
La función BUSCARV se puede utilizar con dos condiciones o criterios de una forma muy sencilla, así:
=BUSCARV("Tomas"&"Enero";A2:B10;2)
En este caso, además de la primera condición, en la fórmula de BUSCARV se agregan dos criterios: que el empleado se llame Tomás y que corresponda al mes de enero.
BUSCARV con tres o más criterios.
La función BUSCARV puede tener tantos criterios como concatenaciones se puedan hacer, así:
BUSCARV(Criterio 1&Criterio 2&Criterio 3&Etc;Rango;Posición)
Debe tenerse presente que una cosa es la condición que se fija para que la función BUSCARV se ejecute o no (SI>30), y otra cosa son los criterios de búsqueda que se fijan en la función BUSCARV, que en nuestro ejemplo corresponden a Tomás y Enero.
Forma de citar este artículo (APA):
Gerencie.com. (2022, febrero 12). Función BUSCARV condicionada en Excel [Entrada de blog]. Recuperado de https://www.gerencie.com/funcion-buscarv-condicionada-en-excel.html
Hola,
Para buscar el producto con el precio mayor, cómo deberia ordenar la fórmular?
Código Detalle Fecha Precio
100005AZÚCAR AZUCAR COMUN 14/03/2022 93
100005AZÚCAR AZUCAR COMUN 29/04/2022 101,9
100007HUEVOS HUEVOS 25/04/2022 13,33
100007HUEVOS HUEVOS 02/05/2022 13,33
100007HUEVOS HUEVOS 09/05/2022 13,33
100007HUEVOS HUEVOS 14/03/2022 13,33
100007HUEVOS HUEVOS 28/03/2022 13,33
100007HUEVOS HUEVOS 04/04/2022 13,33
100007HUEVOS HUEVOS 11/04/2022 13,33
100007HUEVOS HUEVOS 18/04/2022 13,33
100007HUEVOS HUEVOS 24/01/2022 6,5
100007HUEVOS HUEVOS 31/01/2022 7,16
100007HUEVOS HUEVOS 07/02/2022 9,66
100007HUEVOS HUEVOS 14/02/2022 10,67
100007HUEVOS HUEVOS 21/02/2022 12
100007HUEVOS HUEVOS 07/03/2022 13,33
100008LECHELV LECHE LARGA VIDA 12 X 1 LT 14/01/2022 110
100015CHOCBLA CHOCO BAÑO BL ESP MOLDATTE COD 904 M 10/03/2022 900
100015CHOCBLA CHOCO BAÑO BL ESP MOLDATTE COD 904 M 11/04/2022 719,95
100015CHOCBLA CHOCO BAÑO BL ESP MOLDATTE COD 904 M 11/03/2022 653,4
100027ACELGA ACELGA CON MERMA 28/03/2022 182,33
100027ACELGA ACELGA CON MERMA 18/04/2022 140,78
100027ACELGA ACELGA CON MERMA 25/04/2022 160,52
100027ACELGA ACELGA CON MERMA 03/03/2022 228,86
100027ACELGA ACELGA CON MERMA 14/02/2022 278,16
100027ACELGA ACELGA CON MERMA 05/01/2022 130,18
100027ACELGA ACELGA CON MERMA 09/05/2022 111,58
100027ACELGA ACELGA CON MERMA 02/05/2022 131,12
100027ACELGA ACELGA CON MERMA 17/05/2022 114,17
100029AJÍMOLI AJI MOLIDO 19/04/2022 638,88
100030AJO AJO (UNA CABEZA PESA 0.085G) 18/04/2022 1219,54
100030AJO AJO (UNA CABEZA PESA 0.085G) 02/03/2022 941,18
100035ALBAHAC ALBAHACA CON MERMA 21/02/2022 1018,54
100035ALBAHAC ALBAHACA CON MERMA 02/05/2022 1212,06
100042CALABAZ CALABAZA COCIDA CON MERMA 17/05/2022 205,46
100042CALABAZ CALABAZA COCIDA CON MERMA 05/01/2022 169,2
100042CALABAZ CALABAZA COCIDA CON MERMA 05/01/2022 169,2
100042CALABAZ CALABAZA COCIDA CON MERMA 25/04/2022 157,12
100042CALABAZ CALABAZA COCIDA CON MERMA 07/03/2022 180,54
Para encontrar el producto con el precio mayor, puedes utilizar la función `MAX` para determinar el valor máximo del precio y luego usar esa referencia en una búsqueda vertical (VLOOKUP) o índice y coincidencia (INDEX-MATCH) para obtener los detalles asociados. Aquí hay un ejemplo de cómo hacerlo:
### Usando VLOOKUP
Supongamos que tus datos están en las columnas A a E desde la fila 2 hasta la fila 40. En otra celda, digamos G1, coloca esta fórmula:
“`excel
=MAX(E2:E40)
“`
Esto te dará el precio más alto. Luego utiliza VLOOKUP para buscar ese valor.
En H1 coloca esta fórmula:
“`excel
=VLOOKUP(G1,E2:E40,1,FALSE)
“`
Esto devolverá el código del producto correspondiente al precio más alto.
Si deseas obtener otros valores como detalle o fecha puedes ajustar la columna de retorno cambiando “E” por su respectiva letra.
### Usando INDEX-MATCH
En lugar de usar VLOOKUP podrías hacer lo siguiente:
– Para encontrar el código del producto:
“`excel
=INDEX(A:A,MATCH(MAX(E:E),E:E,0))
“`
– Para encontrar la descripción del producto:
“`excel
=INDEX(B:B,MATCH(MAX(E:E),E:E,0))
“`
– Para encontrar la fecha:
“`excel
=INDEX(C:C,MATCH(MAX(E:E),E:E,0))
“`
Estas fórmulas funcionan porque buscan exactamente donde se encuentra ese valor máximo sin importar cuántas veces aparezca ya que usa MATCH con coincidencia exacta.
Para obtener el producto con el precio mayor, puedes utilizar la función `MAX` para encontrar el valor máximo y luego usar `INDEX` y `MATCH` para devolver los valores correspondientes. Aquí hay un ejemplo de cómo hacerlo en Excel o Google Sheets:
Supongamos que tus datos están en las columnas A a E (desde la fila 2 hasta donde lleguen tus datos).
1. Encuentra el precio máximo:
“`excel
=MAX(E2:E40)
“`
2. Encuentra la fila del producto correspondiente al precio máximo:
“`excel
=MATCH(MAX(E2:E40),E2:E40,0)
“`
3. Obtén el código del producto usando INDEX:
“`excel
=INDEX(A:A,MATCH(MAX(E2:E40),E:E,0))
“`
4. Obtener detalle del producto.
“`excel
=INDEX(B:B,MATCH(MAX(E2:E40),E:E,0))
“`
5. Obtener fecha del producto.
“`excel
=INDEX(C:C,MATCH(MAX(E2:E40),E:E,0))
“`
La fórmula anterior devuelve sólo una coincidencia si existen precios iguales; si quieres que devuelva todos los productos con ese precio igual al más alto usa esta fórmula matricial ingresándola como matriz (Ctrl + Shift + Enter):
– Para obtener código:
“`excel
=FILTER(A:A,E:E=MAX(E1:F10))
“`
– Para obtener detalle:
“`excel
=FILTER(B:B,E:E=MAX(E1:F10))
“`
– Para obtener fecha:
“`excel
=FILTER(C:C,E:E=MÁXIMO(EN1:F10))
“`
Recuerda ajustar los rangos según sea necesario dependiendo de cuántas filas tienes llenas.
¿Qué tal? Gracias por la cátedra desinteresada en favor del aprendizaje.
La celda G1 contiene: “A239”.
Necesito un código VBA o una macro para ir a esa coordenada: A239.
Gracias a quien responda.
Para ir a la celda especificada en G1, puedes usar el siguiente código VBA:
“`vba
Sub IrACoordenada()
Dim coordenada As String
coordenada = Range(“G1”).Value ‘ Obtener el valor de la celda G1
‘ Ir a la coordenada especificada
Application.Goto Reference:=coordenada, Scroll:=True
End Sub
“`
Este código primero obtiene el valor de la celda G1 y luego utiliza ese valor para navegar hasta esa celda.
Aquí tienes el código VBA que te llevará a la celda especificada en G1:
“`vba
Sub IrACoordenada()
Dim coordenadas As String
‘ Obtener las coordenadas de la celda desde G1
coordenadas = Range(“G1”).Value
‘ Seleccionar la celda especificada por las coordenadas
Range(coordenadas).Select
End Sub
“`
Este código toma el valor de la celda G1, que contiene una referencia a otra celda (por ejemplo “A239”), y luego selecciona esa celda.