domingo, 21 de febrero de 2010

Ejemplo funciones MAX y MIN en Excel.

Aprenderemos hoy a extraer algo de información de nuestras bases de datos. En concreto a descubrir cuáles son los valores máximo y mínimo de un listado. Exponía un lector esta cuestión:
...tengo en A1 a A10 rangos con fecha y hora de las llamadas hechas y en B1 a B10 el nombre del agente; y lo que debo de hacer es obtener el mínimo y el máximo registro de cada agente. ...

Resolveré la cuestión de diferentes formas, pero todas ellas tienen como base el conocimiento de las funciones MAX(rango) y MIN(rango). Estas funciones devuelven los valores máximo y mínimo, respectivamente, de un conjunto de valores determinados por un rango. Deberemos tener en cuenta que si el argumento de nuestras funciones es una matriz, sólo se utilizarán los números contenidos en la matriz. No se tendrán en cuenta las celdas vacías, los valores lógicos o el texto contenidos en la matriz.
Partimos en nuestro ejercicio del siguiente listado:


Debemos obtener cuáles son el registro mínimo y máximo para un 'Agente' dado.

Para nuestra comodidad he creado una celda validada en tipo Lista con los valores de los agentes:


Situaremos dicha celda en E3.

Para obtener nuestros resultados optaremos en primer lugar por añadir una columna auxiliar donde realizaremos con una función SI condicional una criba para el agente elegido, y que tenemos en la celda E3.
Para cada registro escribiremos:
=SI(B2=$E$3;A2)
es decir, realizamos una verificación, si el 'agente' de este registro es el elegido en la celda validada E3, entonces nos mostrará la 'Hora' de la llamada. Observad como no he dado valor para el argumento de FALSO, ya que me interesa que no devuelva un valor numérico que pudiera interferir posteriormente en nuestros cálculos.


Ahora sobre esta nueva columna auxiliar podremos aplicar nuestras funciones MAX(C2:C11) y MIN(C2:C11)


Como habíamos comentado, al emplear las funciones MAX y MIN sobre una rango de datos, aquellos valores tipo texto no se tienen en cuenta a la hora del cálculo.


Otra forma de llegar al mismo resultado, sin necesidad de construir una columna auxiliar, sería desarrollar una fórmula matricial (Ctrl+Mayus+Enter):
{=MIN(SI($B$2:$B$11=$E$3;$A$2:$A$11))}
{=MAX(SI($B$2:$B$11=$E$3;$A$2:$A$11))}
en la que podemos ver cómo se ha empleado el mismo tipo de estructura anteriormente explicada; se ha anidado dentro de las funciones MAX y MIN un SI condicional, que devuelve sólo los valores de las 'Horas de llamada' para los registros coincidentes con el agente seleccionado en la celda validada E3.

23 comentarios:

  1. SI TENGO DATOS EN A Y EN B NO COLOQUEME LO QUE ESTA EN A PERO SI TENGO DATOS EN A Y EN B COLOCARME LO DE B E IGNORAR A.

    ResponderEliminar
  2. Francisco,
    necesitas emplear una función SI.
    colocarías en la celda C1
    =SI(ESBLANCO(B1);A1;B1)

    Pruébalo...
    Slds

    ResponderEliminar
  3. Hola
    Tengo un problema con las formulas, las mias son asi:

    {=MAX(SI(EJERCICIO=B21;VELOCIDAD))}

    {=MIN(SI(EJERCICIO=B21;VELOCIDAD))}

    Siendo EJERCICIO el rango a comprobar, B21 la casilla de validación y VELOCIDAD el rango con los datos.

    El problema es que funcionando correctamente el MAX, el MIN me dá siempre 0.

    Alguna idea?

    ResponderEliminar
  4. Hola lakytu,
    yo comprobaría qué tipo de valores son los que tienes tanto en el rango EJERCICIO como VELOCIDAD, quizá sean de texto en lugar de valores numéricos ???
    Habría que ver el fichero con el ejemplo planteado.
    Verifica esto y me comentas.
    Slds

    ResponderEliminar
  5. Hola:
    pues en EJERCICIO es texto voy poniendo lo que hago por ej. CORRER, BICI, PISCINA, y en VELOCIDAD la velocidad media, ej. 8.2, 9.5, etc...

    Lo que pretendia es que mediera los MAX y MIN, para cada tipo de ejercicio.

    Gracias por estar ahi, y felicidades por el trabajo que realizas, es muy util e instructivo.

    ResponderEliminar
  6. Hola!!
    la verdad, he replicado tu cuestión y debería funcionar perfectamente con tus fórmulas.
    De todas formas, si sigue fallando (habría que ver el fichero de trabajo), podrías insertar una tabla dinámica, llevando el campo EJERCICIO al área de Rótulos de filas, y dos veces el campo VELOCIDAD al área de valores, una Resumiendo por Máx y la otra Resumiendo por Mín.
    Gracias a ti.
    Un saludo

    ResponderEliminar
  7. tengo un trabjo en excel el cual el profesor me mando hacer un cuadro con ciertas cantidades precios de articulos y vainas ok me mando a sacar el minimo y el maximo de venta al dia de todo los articulo, osea pantalon se vendio 300 BsF (soy de venezuela) Camisas 250 BsF zapatos 150 Bsf entonces tengo que sacar el maximo de esos articulos que obviamente seria pantalon y el minimo que seria zapatos ahora viene lo complicado para mi el me pide abajo del cuadro que hice con todos esos datos colocar lo siguiente

    La categoria con mayor venta en el dia fue (X) con la cantidad de (X) ejemplo que me salga asi: La categoria con mayor venta en el dia fue pantalon con la cantidad de 300

    y que si yo cambio el monto de venta osea que ya no seria pantalon el maximo si no la camisas entonces el automaticamente me lo cambie me escriba asi

    La categoria con mayor venta en el dia fue camisa con la cantidad de (digamos que pusimos que total de camisas vendida fue 400) 400.

    noc si me entienden por favor necesito respuesta para ayer me tiene loco esta vaina este es mi correo si alguien me puede ayudar carpio_83@hotmail.com o me explican por aca si me van a explicar por correo me mandan un correo diciendome que me van a explicar sobre excel para abrir el messenger porque muy poco lo abro y a cada momento abro el hotmail... gracias espero su ayuda

    ResponderEliminar
  8. Hola Mariano,
    ya te digo que necesitarás aplicar fórmulas matriciales para obtener esos datos...
    en este post encontrarás algo similar http://excelforo.blogspot.com/2011/10/encontrar-fechas-con-matriciales.html
    Si bien necesitaría el detalle de tu ejercicio para poder darte la función concreta.
    Puedes enviarmelo a
    excelforo@gmail.com

    Un saludo!!!

    ResponderEliminar
  9. Epale espero estes bien pero sigo en la mismas jajaja necesito ayuda mañana es la entrega de proyecto :S

    ResponderEliminar
  10. Hola Mariano,
    como ya te respondí en el comentario del blog, lo que necesito es el listado de valores con el que trabajas... entiende que sin ver los detalles con los que trabajas poco puedo ayudarte.
    En todo caso, intentaría resolverlo lo antes posible, pero no creo que llegaras a tiempo con tu fecha de entrega (te has demorado demasiado en enviar el fichero que te solicité hace tiempo).
    Saludos cordiales

    ResponderEliminar
  11. HOla , MI CUESTION ES :

    ¿SE PUEDE BUSCAR POR EJEMPLO EN UNA COLUMNA EL 2º MENOR VALOR ?

    Es decir,no el menor sino el siguiente. (Ejemplo: 2, 4, 6, 7, 9, 1, 6, ; en este caso debería buscarme el valro 2)

    gracias.

    ResponderEliminar
    Respuestas
    1. Hola,
      si claro, es posible empleando la función K.ESIMO.MENOR, sobre el rango,. Por ejemplo, el segundo menor valor de la columna A:
      =K.ESIMO.MENOR(A:A;2).
      También existe K.ESIMO.MAYOR.
      Slds

      Eliminar
  12. Gracias me fue de mucha ayuda..
    saludos

    ResponderEliminar
  13. Hola que tal, tengo un ejercicio mas o menos parecido, en mi caso tengo valores de fecha de 1/12/1926 a 20/12/2012 y valores de precipitación diarios, quiero buscar dentro de un año la precipitación máxima. Esto es que del 1/01/1998 al 31/12/1998 me busque la máxima precipitación. Alguna liga a algo parecido?

    ResponderEliminar
    Respuestas
    1. Hola Ekthor,
      bastaría añadir un segundo condicional a lo ya expuesto. Sería matricialmente:
      =MAX(SI(rng_fechas>=FECHA(2014;1;1);SI(rng_fechas<=FECHA(2014;12;31);rgn_precipitaciones;"")))

      Saludos

      Eliminar
  14. Necesito saber el minimo por sucursal ( A y B ).

    Roxana Terrazas B 56.901,00
    Martha Moron A 25.431,00
    Martha Enrich B 44.321,00
    Marcelo Mendoza A 47.726,00
    Maely Enrich B 128.110,00
    Leonardo Enrich A 65.328,00
    Jessica Milena Mendoza Moron A 115.789,00
    Gabriela Terrazas B 90.356,00
    Claudia Terrazas B 23.765,00
    Alfonso Mendoza A 47.643,00

    ResponderEliminar
    Respuestas
    1. Hola Leonardo,
      que tal estás?.. un placer saludarte igualmente.
      Puedes aplicar una fórmula matricial para determinar el mínimo:
      =MIN(SI(B1:B20="A";C1:C20))

      Recuerda ejecutarla matricialmente!!

      Un saludo y gracias por tu participación.

      Eliminar
  15. hola era para ver si algien me puede ayuda con los pasos de la funcion max y min plis

    ResponderEliminar
    Respuestas
    1. Hola,
      solo debes seleccionar un rango de celdas dentro de una de las funciones...
      Saludos

      Eliminar
  16. Hola! Ha sido de gran ayuda, pero me sigue contando los ceros como minimo, he intendado aplicar aplicar "<>0" Pero lo sigue señalando que puede ser?

    ResponderEliminar
    Respuestas
    1. Hola,
      no sé que fórmula estás insertando... pero si es una matricial debes ejecutarla presionando Ctrl + Mayusc + Enter

      Saludos

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.