Sumar y contar con varias condiciones en Excel
Una pregunta que recibo frecuentemente es cmo sumar y contar con varias condiciones en Excel. Cuando ests en esta situacin
nuestra reaccin es utilizar las funciones SUMAR.SI y CONTAR.SI pero pronto nos damos cuenta de que no son el camino correcto.
Si tienes Excel 2007 o una versin superior, entonces puedes utilizar la funcin SUMAR.SI.CONJUNTO y
funcin CONTAR.SI.CONJUNTO, de lo contrario puedes utilizar alguno de los mtodos que presento a continuacin.
la
Limitaciones de SUMAR.SI y CONTAR.SI
Las funciones SUMAR.SI y CONTAR.SI no nos ayudan a sumar y contar con varias condiciones en Excel porque solo pueden contener
una sola condicin. Observa la siguiente tabla de datos:
La funcin SUMAR.SI funciona correctamente si quiero conocer las ventas del mes de Enero para lo cual puedo utilizar la siguiente frmula:
=SUMAR.SI(A2:A12, "Enero", D2:D12)
Si quiero contar el nmero de ventas en el mes de Marzo utilizo la siguiente frmula:
=CONTAR.SI(A2:A12, "Marzo")
Sin embargo, cmo puedo sumar las ventas del mes de Enero de la regin Norte? A continuacin veremos dos alternativas para sumar con
varias condiciones en Excel.
Sumar con varias condiciones utilizando SUMA
La primera alternativa para sumar con varias condiciones es utilizar la funcin SUMA. Observa con detenimiento la siguiente frmula:
=SUMA((A2:A12="Enero") * (B2:B12="Norte") * D2:D12)
Antes de explicar esta frmula debo decir que para que funcione correctamente debemos utilizarla como una frmula matricial por lo que
despus de introducirla en la barra de frmulas debemos pulsar la combinacin de teclas Ctrl + Mayus + Entrar.
En la formula anterior encontrars que las condiciones se encuentran encerradas entre parntesis. La condicin (A2:A12=Enero) ser
verdadera solamente cuando el valor de la columna A tenga el valor Enero. De la misma manera, la condicin (B2:B12=Norte) ser
solamente verdadera precisamente cuando la celda de la columna B tenga el valor Norte.
El resultado de ambas condiciones es multiplicado y recordando la lgica binaria sabemos que al multiplicar verdadero por verdadero
obtendremos como resultado un valor verdadero (uno). Si cualquiera de los factores de la multiplicacin es falso obtendremos un valor falso
(cero) como resultado.
De esta manera, solo en caso de que ambas condiciones sean verdaderas (igual a uno) obtendremos un valor diferente a cero al realizar la
multiplicacin por la columna D. Si cualquier condicin es falsa, la columna D ser multiplicada por cero y no tendr efecto alguno en la suma
total. Observa el resultado de aplicar la frmula antes descrita:
Sumar con varias condiciones utilizando SUMAPRODUCTO
Si conoces la manera en que opera la funcin SUMAPRODUCTO, te habrs dado cuenta de que opera de manera similar a la frmula que
acabamos de revisar. Es por ello que tambin podemos sumar con varias condiciones en Excel utilizando la funcin SUMAPRODUCTO.
=SUMAPRODUCTO((A2:A12="Enero")*1, (B2:B12="Norte")*1, D2:D12)
Observa que las condiciones son las mismas que en la frmula anterior. La nica diferencia es que hacemos la multiplicacin de cada
condicin por 1 para asegurar que tendremos valores numricos. Observa el resultado de esta funcin:
Contar con varias condiciones utilizando SUMA
Aunque parezca raro, podemos contar con varias condiciones en Excel utilizando la funcin SUMA. La frmula para lograrlo es la
siguiente:
=SUMA((A2:A12="Enero") * (B2:B12="Norte"))
Esta frmula es parecida a la primera que revisamos con la diferencia de que no estamos haciendo la tercera multiplicacin por la columna
D. Esta funcin contar las celdas que cumplen con ambas condiciones. Observa el resultado:
Para que esta frmula funcione debemos pulsar la combinacin de teclas Ctrl + Mayus + Entrar ya que debe ser una frmula matricial.
Contar con varias condiciones utilizando SUMAPRODUCTO
Te podrs imaginar que tambin podemos utilizar la funcin SUMAPRODUCTO para contar con varias condiciones. Esta es la frmula:
=SUMAPRODUCTO((A2:A12="Enero")*1, (B2:B12="Norte")*1)
El resultado de esta frmula es el esperado:
Limitaciones de este mtodo
La nica limitacin que tienen los mtodos expuestos en este artculo es que no es posible sumar y contar con varias condiciones bajo la
misma columna. Es decir, no podemos poner dos condiciones para una sola columna, como por ejemplo sumar las ventas de Enero y
Febrero. Estas son dos condiciones para una misma columna.
En un caso como este, la mejor opcin es utilizar dos veces la funcin SUMAR.SI de la siguiente manera:
=SUMAR.SI(A2:A12, "Enero", D2:D12) + SUMAR.SI(A2:A12, "Febrero", D2:D12)
Artculos relacionados
Frmulas matriciales en Excel
La funcin SUMAPRODUCTO en Excel
Por Moiss Ortz el 14 de junio del 2012.
42 pensamientos en Sumar y contar con varias condiciones en Excel
1. Elina
Muchas gracias, no puedo creer que errores tan simples puedan complicar tanto una formula sencilla, su explicacion hizo que me
diera cuenta de mi error y me salvo el dia.
2. Guilermo Rodriguez
Muy prctico, simple y muy sencilla la explicacin. Les agradecera mucho como en muchas ocasiones, si publicaran sobre la
funcin SUMAR.SI.CONJUNTO
He tenido algunas complicaciones y ms cuando uso celdas combinadas.
3. Fabrizzio
Como puedo contar si tengo un rango de datos y quiero que solo cuento aquellos que sean menor a un nmero. Pero sin expresar
el numero, sino el resultado de una formula =C1-2 ??
Ejemplo:
=CONTAR:SI(A1:A20,>C1-2) ??
1. Moiss Ortz Autor
Hola Fabrizzio, utiliza la siguiente frmula:
=CONTAR:SI(A1:A20,> & C1-2)
Lo importante es concatenar el signo > utilizando el caracter &.
1. Raul
Excelente respuesta. Llevaba muchas pruebas y bsquedas y no le atinaba. La frustracin me hizo copiar la
frmula y editar rengln por rengln para tener el nmero correcto, pero tu propuesta me salv el da. Gracias
4. Sergio
Que tal amigo, te felicito nuevamente, este tipo de ayuda que brindas esta super, es como tener un maestro por internet, es mucha
la ayuda que proporcionas, me han servido muchisimo las herramientas de excel y esto me facilita y le facilito el trabajo a mis
compaeros porque les hago mas facil su trabajo, gracias
5. Sergio
si tengo en una lista repetido varias veces el nombre de una persona, y quiero sacar una relacion pero en un concentrado que
aparezca una sola vez, que formula tengo que utilizar, mi gracias
1. Moiss Ortz Autor
Hola Sergio, lo puedes hacer muy fcil utilizando el comando Quitar duplicados de la ficha Datos. Te dejo un ejemplo:
http://exceltotal.com/quitar-valores-duplicados/
6. Juan Angel
Muchas gracias, hace tiempo estaba buscanto una formula parecida. Sinceramente muchsimas gracias.
7. martha
Felicidades Moiss, como me ha ayudado tu pgina.
8. Ruth
Hola Moiss,
muy buena tu explicacin y las distintas posibiliades para calcular esto. Estoy intentando hace horas de hacer algo as, pero no me
resulta. Ahora le puse la frmula que t propusiste y Excel corrige automticamente el coma despus del primer *1 por un ; o un *.
Muestra que el resultado es 0 aunque debera haber una suma. Te muestro mi frmula: =SUMAPRODUCTO((Ventas 13!
B2:B300=Januar 2013)*1;(Ventas 13!F2:F300=CD)*1;K2:K300)
Tienes alguna idea a qu se debe?
Gracias de antemano!
1. Moiss Ortz Autor
Hola Ruth, el punto y coma (;) se debe a la configuracin regional de tu equipo y no afecta en lo absoluto al resultado.
El problema debe estar en otro lado y lo nico que se me ocurre es la comparacin que estas haciendo con Januar 2013.
Si las celdas de la columna B son fechas, entonces no habr coincidencias porque la comparacin la estas haciendo como
si la columna B tuviera texto y son dos cosas diferentes.
9. MACARENA
Me gustara que me ayudrais con esta frmula que no paro de darle vueltas. Se trata de una tabla en la que necesitara saber
cuntas gruas tendra disponibles en unos determinados tramos horarios, cada uno de los das de la semana. Me explico: para cada
indicativo de grua, por ejemplo G-1, G-2 y da de la semana, con los horarios comprendidos entre 23:00-07:00, 07:00-15:00 y
15:00-23:00, necesitara saber cuntas gruas habra en el tramo horario 23:00-03:00, por ejemplo. Estoy utilizando la frmula
=CONTAR.SI($B$1:$B$11;>23:00 & <03:00"), y no me sale. Me dis alguna idea??? Gracias.
1. Moiss Ortz Autor
Hola Macarena, el problema es que 23:00 hrs. pertenece a un da (por la noche) y 3:00 hrs. es del siguiente da (por la
madrugada) y a los ojos de Excel tu condicin jams se cumplir porque ninguna hora del mismo da es menor a 3 y al
mismo tiempo mayor a 23. Ser necesario que involucres la fecha completa en tu condicin.
10. Rodmary
Si tengo varios criterios que deseo sumar con que formula lo hago.
Ejemplo: Tengo como categoras A, B, C, y D y slo quiero sumar los montos de las categora B y D.
Gracias
1. Moiss Ortz Autor
Hola Rodmary, supongo que las categoras son una sola columna en tu tabla de datos. En ese caso debes sumar primero
los valores de la categora B y despus la categora D. Por ejemplo, si los valores a sumar estn en la columna A y las
categoras en la columna B puedes utilizar una frmula como la siguiente:
=SUMAR.SI(B2:B6,B, A2:A6) + SUMAR.SI(B2:B6,D, A2:A6)
11. Liz
Hola quiero realizar la siguiente funcin pero no encuentro como, quiero tomor una columna a de una hoja en Excel = a otra
columna a de la otra hoja si es igual que sume lo de otra hoja y arroje el resultado, pero no se que formula utilizar.
gracias
1. Moiss Ortz Autor
Hola Liz, ya que requieres hacer una comparacin debes utilizar la funcin SI y en caso de ser verdadera realizar la suma.
La frmula es la siguiente:
=SI(Hoja1!A1 = Hoja2!A1, Hoja1!A1 + Hoja2!A1)
12. Vero Tapia
Hola, buen da, disculpa como puedo contar y sumar con tres condiciones cuando una de ellas es un campo de fecha, es decir,
sumar cuentas que pertenezcan a cierto grupo de cierta sucursal y sean cuentas aperturadas en el mes de septiembre por ejemplo.
Saludos y de antemano gracias.
1. Moiss Ortz Autor
Hola Vero, te recomiendo utilizar la funcin SUMAR.SI.CONJUNTO y CONTAR.SI.CONJUNTO que aceptan perfectamente
fechas como condiciones.
http://exceltotal.com/la-funcion-sumar-si-conjunto-en-excel/
http://exceltotal.com/la-funcion-contar-si-conjunto-en-excel/
1. Vero Tapia
Gracias por el aporte. Saludos
13. Eduardo
estoy revisando el foro y lo encontre tremendamente interesante y necesario
el excel es una tremenda herramienta
estoy medio complicado con una formula.. usando contar.si
tengo un rango de valores que va desde e1:e850 de una tabla
y quiero contar cuantos montos hay entre 2 valores determinados
particularmente cuantos hay entre 100 y 150
he probado varias opciones y esta es como la mas cercana pero aun no funciona
=CONTAR.SI(E1:E850;>100 & <150")
si me pueden dar alguna referencia se los agradeceria
muchas gracias
1. Moiss Ortz Autor
Hola Eduardo, el criterio >100 & <150" es invlido en Excel. Adems, la funcin CONTAR.SI solo acepta un criterio y en tu
caso son dos. Una alternativa es utilizar la funcin CONTAR.SI.CONJUNTO:
=CONTAR.SI.CONJUNTO(E1:E850;">100; E1:E850; <150)
14. JOSE MARIA DIAZ
Hola :
Tengo un poblema con EXCEL 2003 , tengo que contar de 2 columnas las coincidencias.
Pero ningun ejemplo de aqui me funciona.
Par el exel 2003 no funciona el contar.si.conjunto , que puedo hacer ?
1. Moiss Ortz Autor
Hola Jose Mara, la funcin CONTAR.SI.CONJUNTO no est disponible en Excel 2003.
Intenta con el mtodo de la funcin SUMAPRODUCTO, est probado que funciona correctamente en Excel 2003.
15. Rocio
Hola!
Muchas gracias, no poda encontrar una frmula para realizar lo que necesito.
Sin embargo, no logro que la frmula de Sumar con varias condiciones funcione. Tengo Excel 2003, y mi pregunta es esta:
En la columna O tengo anotada la moneda, en la columna T, las fechas en que se cobran ciertos montos, y los totales estn en la
columna N.
Cuando ingreso la frmula, me aparece valor cero.
=SUMA((Ene-13!O3:O41=Dlares)*(Ene-13!T3:T41=14/02/2013)*Ene-13!N3:N41)
Creo que el problema es que es la condicin es una fecha. Crees que me podrs ayudar?
Gracias!
1. Moiss Ortz Autor
Hola Rocio, efectivamente el problema es la condicin de la fecha porque se intenta hacer una comparacin como si fuera
cadena de texto cuando en realidad las fechas son un valor numrico. La solucin es utilizar el valor numrico de la fecha,
que en este caso para 14/02/2013 es el valor 41319. La frmula entonces quedara de la siguiente manera:
=SUMA((Ene-13!O3:O41=Dlares) * (Ene-13!T3:T41=41319) * Ene-13!N3:N41)
Para saber cmo obtener el valor numrico de una fecha consulta el siguiente artculo:
http://exceltotal.com/fechas-en-excel/
16. Daniel B.C.
Hola, no consigo realizar una funcin condicional, parece sencilla ,pero no consigo dar con ella.
El caso es que quiero una funcin que al introducir un valor en una celda numrica esta me calcule si esta dentro de de la tolerancia
de un plano ej. 253 0.1 mm. (Aceptable o No aceptable)
Gracias
1. Moiss Ortz Autor
Hola Daniel, suponiendo que el valor evaluado est en la celda A1, puedes utilizar la siguiente frmula:
=SI(Y(A1>252,9; A1<253,1); Aceptable; No Aceptable)
17. JOHNBO
Gracias. Me acabas de ayudar a salir de un gran embrollo.
18. Juan
Si quiero que sume los valores de una columna pero con la excepcin de un criterio, como hago?
Saludos
1. Moiss Ortz Autor
Hola Juan, utiliza el operador <> para indicar que deseas sumar los valores que sean diferentes al valor indicado, por
ejemplo, la siguiente frmula suma los valores de la columna D cuyo valor de la columna A es diferente a Enero:
=SUMA((A2:A12<>Enero) * D2:D12)
19. revluna
Hola Moises,
Tengo una fecha en una celda llamada MATRICULACION y tenemos otra celda llamada ITV, lo que queremos hacer es que cuando
aadimos la fecha de matriculacin automticamente en la celda ITV nos salga cuando sera. Hemos intentado hacerlo simple
sumando aos pero nos da error al hacer la comparacin de la fecha, es decir que cuando ponemos la fecha matriculacin compare
con la fecha actual para as saber exactamente la ITV ya que cambiara si es excepto, 4 aos, 2 aos
La celda MATRICULACION y ITV seria asi
MATRICULACION ITV
20-3-2012 20-3-2016 pondriamos la fecha de matriculacin y automticamente en la celda ITV comparara la fecha de matriculacin
con la fecha actual y nos dara pues 4 aos ya que la normativa dice lo siguiente :
Los automoviles :
Menos de 4 aos en comparacin a la fecha de matriculacin estara excento con lo que no saldr fecha el la celda ITV
De 4 a 10 aos en comparacin a la fecha de matriculacin con la fecha actual se sumaria 2 aos a la fecha en la celda ITV
Ms de 10 aos en comparacin a la fecha de matriculacin con la fecha actual se sumaria 1 ao a la fecha en la celda ITV
Muchas gracias
1. Moises Ortiz Autor
Hola revluna, lo mejor sera obtener la cantidad de aos utilizando la funcin SIFECHA. Si no conoces esta funcin te
recomiendo leer el siguiente artculo:
http://exceltotal.com/calcular-el-tiempo-transcurrido/
Tengo adems otro artculo donde muestro el uso de esta misa funcin para obtener la diferencia entre dos fechas en
aos, meses y das, pero al final de dicho artculo hay un ejemplo de como calcular la edad, que es la diferencia entre una
fecha del pasado y la fecha actual (HOY) y creo que ese clculo es el mismo que necesitas. El artculo lo encuentras aqu:
http://exceltotal.com/calcular-anos-meses-y-dias-entre-dos-fechas-en-excel/
Por supuesto, una vez que obtengas la cantidad de aos entre ambas fechas, tendrs que utilizar la funcin SI anidada
para validar si el valor es menor a 4, entre 4 y 10 o mayor a 10. Si no ests familiarizado con este uso de la funcin SI te
recomiendo ver el siguiente tutorial:
http://exceltotal.com/tutorial-excel-2010-funcion-si-anidada/
20. Patricio
gracias me sirvi de mucho para contar con varias condiciones en Excel
21. Pinxet
Hola Moiss, tengo el excel 2003 estoy implementado la funcin SUMAR.SI pero necesito hacerlo sobre un rango de fechas
determinada entre 1-04-14 y 1-08-14
ejemplo =SUMAR.SI(A2:A6; >=41759, <=41882"; B2:B6 )
como esto supone otra condicin no la puedo realizar con esta versin de excel (evidentemente el valor intermedio de la funcin
est mal era para que comprendieras lo que necesito hacer y como).
Se te ocurre alguna solucin ha este problema, sabes si puedo iterpolar otra condicin intermedia?
Gracias.
1. Moises Ortiz Autor
Hola Pinxet, no me queda claro si ya implementaste alguno de los mtodos descritos en este artculo. Estos mtodos son
precisamente para versiones de Excel que no tienen la funcin SUMAR.SI.CONJUNTO como es tu caso. De todas formas,
otra posibilidad aparte de las descritas en el artculo sera sumar las fechas mayores al lmite superior y restarle la suma de
las que son menores al lmite inferior, por ejemplo:
=SUMAR.SI(A1:A9, >31/01/14) SUMAR.SI(A1:A9, <01/01/2014)
1. Pinxet
Gracias Moises, lo hice as y funcion correctamente!!
22. Carlos
Tengo valores en varias columnas, algunas celdas no regsitran valor. Deseo sumarlas y que se dividan para la cantidad de celdas
que si tienen valor, podrian ayudarme. Gracias de antemano
1. Moiss Ortz Autor
Hola Carlos, para contar las celdas que tienen valor puedes utilizar la funcin CONTARA. Consulta el siguiente artculo
para saber ms de esta funcin:
http://exceltotal.com/como-comparar-dos-listas-en-excel/
23. MaFE
Como puedo hacer una formula que me cuente con tres condiciones, tengo esta pero no me sale:
=contar.si((H2:H150;Martha Mera),(I2:I150;Citas),(M2:M150;pendiente))
1. Moiss Ortz Autor
Hola MaFE, no es posible contar con varias condiciones utilizando la funcin CONTAR.SI. En todo caso utiliza la funcin
CONTAR.SI.CONJUNTO o alguno de los mtodos mostrados en este artculo que hacen uso de la funcin SUMA o
SUMAPRODUCTO.