Un lector me hace llegar la siguiente inquietud via mail: dada una tabla, necesita calcular el maximo valor y el promedio.... de una persona en particular. Muestro algunos registros creados por mí para el ejemplo, evitando mostrar los datos que me hicieron llegar.
en una celda se debera ingresar el nombre de la persona en cuestión, para que nuestras funciones calculen el maximo importe y el promedio.
Con las funciones "comunes" esto sería practicamente imposible de resolver: debemos hacer uso de las matriciales (aquellas que presionamos ctrol + entrar al terminarla)
En realidad el ejercicio no es complejo y viene muy bien para aquellos que dan sus primeros pasos en el tema.
Entonces, vamos con las soluciones al problema planteado:
1) Maximo Condicional
={MAX(SI(D2:D13=H1;E2:E13))}
explicacion: si el rango D2:D13 es igual al nombre presente en H1, entonces evalua el rango E2:E13, devolviendo el maximo valor encontrado:
en H2 se encuentra la función que resuelve este planteamiento.
2) Promedio Condicional:
={PROMEDIO(SI(D2:D13=H1;E2:E13))}
explicacion: si el rango D2:D13 es igual al nombre presente en H1, entonces evalua el rango E2:E13, promediando los valores que coinciden con H1. Es casi igual a la funcion anterior, solo que reemplazamos MAX() por PROMEDIO():
Con el buscador del blog podrán acceder a otros ejemplos de funciones matriciales, o bien pueden hacer
click aqui y buscarlas por categoria.
De igual forma podemos incluir cualquier funcion y convertirla en matricial. Para un trabajo completo, agregaria MIN().
Hola. Me ayudó mucho este post. De todas maneras me surge una duda. Es posible usar esta fórmula dentro de otra? Por ej: =SI(B8=0;"";MIN(SI(M8:M33=AI8;B8:B33)))
ResponderEliminarAl utilizar CTRL+Shift+Enter el resultado es 0.
De no poder utilizarla tengo que utilizar columnas auxiliares
Gracias!
Yo creo que la solución seria combinar SI() con Y() para el caso de necesitar el uso de varias condiciones.
ResponderEliminarPor ejemplo: si(y(a1>0;b2=11;c1<=10);min(d1:d100))
Que seria: si a1 es mayor a ceros y b2 es igual a 11 y c1 es menor o igual a 10.... Entonces calculo el minimo del rango d1:d10.
Trata de adaptarlo a tu proyecto y cualquier cosa me avisas.
estoy intentando lo de este post en excel 2010 y me sale el error de valor.
ResponderEliminardetallo q mis columnas están separadas
Jonathan: si estás usando excel 2010, esa versión viene con =Promedio.si(rango; criterio), por cuanto no te haría falta el uso de una función matricial.
ResponderEliminarNo comprendo bien lo que me decis con "columnas separadas", pero la función:
={MAX(SI(D2:D13=H1;E2:E13))}
le pide a Excel: si las celdas del rango D2:D13 coinciden con el valor presente en H1, entonces decime cual es el valor mas alto (MAX) del rango E2:E13. Seguramente tus datos están en otro lado, por cuanto deberías reemplazar los argumentos de mi ejemplo x los de tu proyecto.
Y no olvides presionar "ctrol + mayuscula + enter" al ingresar la función, para que se convierta en matricial (fijate que está encerrada entre llaves). si el error persiste, mandame tu archivo.
gracias x el mensaje