=PROMEDIO.SI(A2:A7;"North";C2:C7) promedia las ventas de C2:C7 en las filas en las que la columna A es North. Funciona como SUMAR.SI, salvo que divide el total entre el número de filas que coinciden. En inglés las funciones se llaman AVERAGEIF y AVERAGEIFS, y la tabla muestra la fórmula así: =AVERAGEIF(A2:A7,"North",C2:C7). La tabla también acepta las fórmulas escritas en español, con punto y coma (o con comas, como en México).
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Condition | Average | |
| 2 | North | Apple | 120 | North | 90 | |
| 3 | South | Pear | 45 | North, Apple | 80 | |
| 4 | North | Pear | 110 | Over 50 | 120 | |
| 5 | East | Apple | 55 | |||
| 6 | South | Apple | 195 | |||
| 7 | North | Apple | 40 |
=PROMEDIO.SI(A2:A7;"North";C2:C7)F2 promedia las tres filas de North, 120, 110 y 40, y muestra 90. F3 necesita dos condiciones, North y Apple, así que usa PROMEDIO.SI.CONJUNTO: (120 + 40) / 2 = 80. F4 no tiene un rango de promedio aparte, así que promedia las propias ventas que coinciden.
Sintaxis de PROMEDIO.SI y PROMEDIO.SI.CONJUNTO
=AVERAGEIF(range, criteria, [average_range])
=AVERAGEIFS(average_range, criteria_range1, criteria1, [criteria_range2, criteria2], ...)
El orden de los argumentos es la misma trampa que en SUMAR.SI y SUMAR.SI.CONJUNTO: PROMEDIO.SI pone el rango que se promedia al final (y te deja omitirlo), PROMEDIO.SI.CONJUNTO lo pone al principio. Los criterios se escriben igual en las dos: "North", ">50", "<>0", "*apple*", o un operador unido a una celda, ">"&F5. Las celdas vacías y el texto del rango que se promedia se saltan.
Promedio sin contar los ceros
PROMEDIO (AVERAGE en inglés) cuenta un 0 como un valor, así que dos alumnos ausentes con una nota de 0 bajan el promedio de la clase. Las celdas vacías son distintas: PROMEDIO las salta. =PROMEDIO.SI(B2:B7;"<>0") salta también los ceros.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Student | Score | Method | Result | |
| 2 | Ana | 80 | AVERAGE | 48 | |
| 3 | Ben | 0 | Ignore zeros | 80 | |
| 4 | Cara | 90 | Count of zeros | 2 | |
| 5 | Dan | Count of numbers | 5 | ||
| 6 | Eva | 70 | |||
| 7 | Finn | 0 |
=PROMEDIO.SI(B2:B7;"<>0")PROMEDIO divide 240 entre 5, porque la celda vacía de Dan queda fuera pero los dos ceros se cuentan, y muestra 48. PROMEDIO.SI con "<>0" divide 240 entre 3 y muestra 80. Escribe 60 en B5 y los dos cambian; escribe 0 en B5 y solo cambia PROMEDIO. Para dejar fuera también los números negativos, usa ">0".
Por qué PROMEDIO.SI devuelve #¡DIV/0!
Cuando nada coincide, PROMEDIO.SI no tiene entre qué dividir y devuelve #¡DIV/0! (#DIV/0! en inglés; la tabla muestra los nombres de error en inglés). Envuélvela en SI.ERROR para mostrar un guion, un mensaje o una celda vacía en su lugar.
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Region | Product | Sales | Formula | Result | |
| 2 | North | Apple | 120 | West average | #DIV/0! | |
| 3 | South | Pear | 45 | With IFERROR | No sales | |
| 4 | North | Pear | 110 | North max | 120 | |
| 5 | East | Apple | 55 | North min | 40 | |
| 6 | South | Apple | 195 | Apple max | 195 | |
| 7 | North | Apple | 40 |
#DIV/0! La fórmula divide entre cero o entre una celda vacía.En Excel en español: =PROMEDIO.SI(A2:A7;"West";C2:C7)No hay ninguna fila de West, así que F2 muestra #DIV/0! y F3 muestra el mensaje. Cambia A3 a West y las dos muestran 45.
MAX.SI.CONJUNTO y MIN.SI.CONJUNTO
De F4 a F6 en la tabla anterior se encuentran el mayor y el menor valor con una condición. MAX.SI.CONJUNTO y MIN.SI.CONJUNTO (MAXIFS y MINIFS en inglés) usan el orden de PROMEDIO.SI.CONJUNTO, con el rango en el que se busca primero: =MAX.SI.CONJUNTO(C2:C7;A2:A7;"North") devuelve 120 y =MIN.SI.CONJUNTO(C2:C7;A2:A7;"North") devuelve 40. A diferencia de PROMEDIO.SI, devuelven 0 cuando nada coincide, no un error.
MAX.SI.CONJUNTO y MIN.SI.CONJUNTO necesitan Excel 2019 o posterior, o Microsoft 365. En Excel 2016 y anteriores, =MAX(SI(A2:A7="North";C2:C7)) hace lo mismo; pulsa Ctrl+Mayús+Entrar (Cmd+Mayús+Entrar en Mac) para introducirla en esas versiones.
Práctica: promedio con dos condiciones
| A | B | C | D | E | F | |
|---|---|---|---|---|---|---|
| 1 | Student | Class | Score | Condition | Average | |
| 2 | Ana | A | 80 | Class A, no zeros | ||
| 3 | Ben | B | 75 | |||
| 4 | Cara | A | 0 | |||
| 5 | Dan | B | 60 | |||
| 6 | Eva | A | 90 | |||
| 7 | Finn | B | 0 | |||
| 8 | Gus | A | 70 |
Tu turno: Promedia las notas de la clase A, sin contar los ceros (alumnos ausentes). Escribe la fórmula en F2.
Promedio de promedios: un error habitual
Promediar los promedios de grupos de distinto tamaño da un promedio general equivocado. North tiene tres filas y South dos, así que cada fila de South pesa más de lo que debería en el promedio de los dos promedios.
| A | B | C | D | E | |
|---|---|---|---|---|---|
| 1 | Region | Sales | Formula | Result | |
| 2 | North | 120 | North | 90 | |
| 3 | South | 45 | South | 120 | |
| 4 | North | 110 | Average of the two | 105 | |
| 5 | South | 195 | All rows | 102 | |
| 6 | North | 40 |
=PROMEDIO(E2:E3)E4 muestra 105, y E5 el promedio real de las cinco filas, 102. Cuando los grupos tienen distinto tamaño, promedia las propias filas con un solo PROMEDIO.SI.CONJUNTO, o divide un SUMAR.SI.CONJUNTO entre un CONTAR.SI.CONJUNTO con las mismas condiciones:
=SUMIFS(B2:B6,A2:A6,"North")/COUNTIFS(A2:A6,"North")
En Excel en español: =SUMAR.SI.CONJUNTO(B2:B6;A2:A6;"North")/CONTAR.SI.CONJUNTO(A2:A6;"North").
Una nota ponderada por créditos o por cantidad es otro cálculo distinto: eso es un promedio ponderado.
Preguntas frecuentes
¿Qué diferencia hay entre PROMEDIO.SI y PROMEDIO.SI.CONJUNTO?
PROMEDIO.SI recibe una condición y pone el rango que se promedia al final: =PROMEDIO.SI(A2:A7;"North";C2:C7). PROMEDIO.SI.CONJUNTO recibe varias condiciones y pone el rango que se promedia al principio: =PROMEDIO.SI.CONJUNTO(C2:C7;A2:A7;"North";B2:B7;"Apple").
¿Cómo saco un promedio en Excel sin contar los ceros?
Usa =PROMEDIO.SI(B2:B7;"<>0"). Promedia solo las celdas que no son 0. PROMEDIO y PROMEDIO.SI ya dejan fuera las celdas vacías, así que solo los ceros de verdad necesitan la condición.
¿Por qué PROMEDIO.SI devuelve #¡DIV/0!?
Ninguna celda cumplió la condición, así que Excel divide una suma de 0 entre un conteo de 0. Envuélvela para mostrar otra cosa: =SI.ERROR(PROMEDIO.SI(A2:A7;"West";C2:C7);"No data").
¿Cómo encuentro el valor máximo con una condición?
Usa MAX.SI.CONJUNTO, con el rango en el que se busca primero: =MAX.SI.CONJUNTO(C2:C7;A2:A7;"North") devuelve el mayor valor de North. MIN.SI.CONJUNTO funciona igual para el menor. Las dos necesitan Excel 2019 o posterior, o Microsoft 365.