** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Sumar datos si otra celda no es cero
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoSumar datos si otra celda no es cero

 Responder Responder
Autor
Mensaje
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Tema: Sumar datos si otra celda no es cero
    Enviado: 03/Agosto/2022 a las 12:39
Buenos días:

Tengo datos numéricos de C31 a N31, del año 2021.
Tengo datos numéricos de C34 a N34, del año 2022.

En la celda C36 quiero sumar los valores de los últimos 12 meses.

Para todo 2022 es fácil, C36=SUM(C34:N34).

Ahora bien, si tengo meses en 2022 con valor 0, tengo que añadir ese mes del año 2021.

En otras palabras, si en febrero de 2022 el valor es 0 (celda D34) tengo que añadirle el valor de febrero de 2021 (celda D31).

Esto sería tan fácil como C36=SUM(C34:N34)+D31.

Pero claro, no sé qué meses van a tener 0 en 2022, por lo que tengo que usar una fórmula que mire el valor en la fila 34 y si es cero, coja el valor de la misma columna pero fila 31.

Me lo he planteado con offset pero me resulta muy complicado "=if(offset(...." para todos los meses, por lo que busco una forma más sencilla de hacerlo pero no se me ocurre ahora mismo.

Así que cualquier idea será muy bien venida.

Otro detalle, sin VBA.

Gracias.

Luis.
El Búho es un pajarraco
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 03/Agosto/2022 a las 14:52
Bueno, mi solución ha sido:

En la celda C36

=SUM(C34:N34)
+IF(OFFSET(B37; -3; 1) =0; OFFSET(B37; -6; 1); 0)
+IF(OFFSET(B37; -3; 2) =0; OFFSET(B37; -6; 2); 0)
+IF(OFFSET(B37; -3; 3) =0; OFFSET(B37; -6; 3); 0)
+IF(OFFSET(B37; -3; 4) =0; OFFSET(B37; -6; 4); 0)
+IF(OFFSET(B37; -3; 5) =0; OFFSET(B37; -6; 5); 0)
+IF(OFFSET(B37; -3; 6) =0; OFFSET(B37; -6; 6); 0)
+IF(OFFSET(B37; -3; 7) =0; OFFSET(B37; -6; 7); 0)
+IF(OFFSET(B37; -3; 8) =0; OFFSET(B37; -6; 8); 0)
+IF(OFFSET(B37; -3; 9) =0; OFFSET(B37; -6; 9); 0)
+IF(OFFSET(B37; -3; 10) =0; OFFSET(B37; -6; 10); 0)
+IF(OFFSET(B37; -3; 11) =0; OFFSET(B37; -6; 11); 0)
+IF(OFFSET(B37; -3; 12) =0; OFFSET(B37; -6; 12); 0)


funciona, pero no me acaba de gustar

Si hay sugerencias, se agradecerán, si no, en unos días cierro el hilo.

Luis

El Búho es un pajarraco
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5970
Enlace directo a este mensaje Enviado: 04/Agosto/2022 a las 19:27

No había visto tu mensaje.Embarrassed


Esto me funciona:

[C36]    =SUMA($C$34:$N$34) + SUMAPRODUCTO(($C$31:$N$31)*($C$34:$N$34=0))




Saludos desde Tenerife.
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5970
Enlace directo a este mensaje Enviado: 04/Agosto/2022 a las 21:24
También con SUMAR.SI.CONJUNTO (las últimas funciones matriciales no las he estudiado aún):

[C36]    =SUMA(C34:N34;SUMAR.SI.CONJUNTO(C31:N31;C34:N34;""))

  A    B    C    D    E    F    G    H    I    J    K    L    M    N
29
30    ENE    FEB    MAR    ABR    MAY    JUN    JUL    AGO    SEP    OCT    NOV    DIC
31 2021 222 218 441 567 600 351 502 563 629 536 431 477
32
33
34 2022 1 1 1 1   1 1 1 1 1 1 1
35
36 611
37


EDITADO:  Si los valores de las filas 31 y 34 son el resultado de fórmulas, posiblemente en lugar de comillas dobles deberás poner cero.




Editado por AnSanVal - 04/Agosto/2022 a las 21:49
Saludos desde Tenerife.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 05/Agosto/2022 a las 10:45
Pues funciona de vicio, D. Antonio.

Y sin la menos duda, mucho más práctico que lo mío... además de más elegante.

Lo único es traducirlo al gringo, en mi caso, y listo.

Mil gracias.

Luis
El Búho es un pajarraco
Arriba
xavi Ver desplegable
Administrador
Administrador
Avatar
Terrassa-BCN

Unido: 10/Mayo/2005
Localización: Catalunya ||||
Estado: Sin conexión
Puntos: 14720
Enlace directo a este mensaje Enviado: 07/Agosto/2022 a las 16:17
Con permiso ya que has mencionado la traducción al gringo.

En mis clases me encuentro con usuarios que tiene Office instalado en diferentes idiomas. Lo más usual es que sea inglés pero también he encontrado catalán, francés y portugués. Y una vez un alemán.

También tuve el problema en un cliente dónde tenia máquina virtualizada que me pusieron el office en inglés.

Para esos momentos descubrí una herramienta en la tienda de Microsoft.

Desde Excel (en mi Office 365 versión 2206)
Pestaña Insertar
Bloque Complementos
Opción Obtener complementos (se abre ventana)
Categoría Productividad
En el cuadro de búsqueda: translate (+ intro, obviamente)
La primera opción es "Functions Translator, a Microsoft Garage project.
Lo agregáis y aparece, en la pestaña Inicio, un nuevo bloque "Traductor de funciones" con  las 2 opciones.

Una maravilla.

Saludos

Xavi, un minyó de Terrassa

Mi web
Arriba
AnSanVal Ver desplegable
Administrador
Administrador
Avatar

Unido: 16/Marzo/2005
Localización: España
Estado: Sin conexión
Puntos: 5970
Enlace directo a este mensaje Enviado: 07/Agosto/2022 a las 22:34
Es bueno saberlo (una más). Thumbs Up

Yo (cuando traduzco) suelo utilizar «Santa grabadora»:

a.- Doy a Grabar macro.

b.- Entro la fórmula:  =SUMA(C34:N34;SUMAR.SI.CONJUNTO(C31:N31;C34:N34;""))

c.- Detengo la grabadora.

d.- Código grabado:  "=SUM(R[-2]C:R[-2]C[11],SUMIFS(R[-5]C:R[-5]C[11],R[-2]C:R[-2]C[11],""""))"

e.- Que yo adapto a :  =SUM(C34:N34,SUMIFS(C31:N31,C34:N34,""))



Pega Sólo me vale para español → inglés y para inglés → español*.


* (con Office en español · desde VBA).- Range("C36").Formula = "=SUM(R[-2]C:R[-2]C[11],SUMIFS(R[-5]C:R[-5]C[11],R[-2]C:R[-2]C[11],""""))"




Saludos desde Tenerife.
Arriba
lbauluz Ver desplegable
Administrador
Administrador
Avatar

Unido: 29/Marzo/2005
Localización: La Gloria
Estado: Sin conexión
Puntos: 3849
Enlace directo a este mensaje Enviado: 08/Agosto/2022 a las 06:41
Muy bueno saberlo, porque a veces es un dolor de cabeza, aunque normalmente yo suelo usar Google para buscar la traducción.

Gracias.

Luis
El Búho es un pajarraco
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable