Código vba excel que suma según 4 criterios

Tengo una hoja base de datos llamada BdSalidas en la cual tengo 5 columna donde la a es fecha la b es movimiento la c es tipo de salida la d tipo de orden y la e cantidad y otra hoja llamada resultado en la cual tengo las misma columna vacías

Necesito un código que mesume las cantidades de la hoha Bdsalidas según la columna a b c y d

1 respuesta

Respuesta
1

No entiendo como deben ser esas sumas. De momento mándame el libro y si puede venir explicado mejor.

hay te estoy envíando el archivo mi amigo

Veamos.

La celda C10 es la suma de las cantidades de la columna S de BDentradas cuya fecha está comprendida entre Fecha Inicial y Fecha Final y además ¿qué tenga la palabra INVENTARIO INICIAL en la columna E?

¿La Celda C11 seria la suma de cantidades de S que estan entre las fechas y tienen la palabra COMPRAS en la columna E?

Es que otras veces parece que los datos deben ser de la columna B.

Por favor, excplicame bien que es lo que se debe sumar en cada celda. Ten en cuenta que yo no he creado esa base de datos y a mi no resulta nada natural.

fijate que el primer criterio es fecha inicial que se va a evaluar en columna "A" de BDENTRADAS el otro criterio seria la fecha final con la columna "A" de la hoja BDENTRADAS y un ultimo criterio que es los valores de B10 a B15 que seria el criterio principal para la suma es decir si es compra sumame todas la compras pero de la fecha tal a la fecha tal (las fechas son listas) o otro; sumame los inventarios iniciales de la fecha tal a la tal y la columna "E" de BDENTRADAS es la que me evalúa el criterio principal

Esto es mejor hacerlo con las fusiones de Excel, que son adecuadas para cálculos de este tipo. En concreto usaremos la función

SUMAR.SI.CONJUNTO(rango_suma; rango_criterio1; criterio1; rango_criterio2;criterio2;...)

Que sumará aquellas casillas del rango_suma tales que las celdas correspondientes de los rango_criterio1 cumplen criterio1, y que las de rango_criterio2 cumplen el criterio2, etc.

Una dificultad adicional es que los rangos están en otra hoja, pero no hay problema, poniendo el nombre de la hoja seguido de admiración y el rango ya lo tenemos.

La formula que sirve para lo que queremos hacer es:

=SUMAR.SI.CONJUNTO(BDENTRADAS!S:S; BDENTRADAS!A:A; ">=" & $B$4; BDENTRADAS!A:A;"<=" & $B$5; BDENTRADAS!E:E; $B10)

Es todo una sola línea.

La pondremos en la celda C10 y después de introducida copiamos la celda y la pegamos en las casillas C11 a C16.

Nótese como las referencias a celdas son todas absolutas salvo el 10 de $B10 lo que hará que en cadas celda el criterio3 tenga el valor de la celda izquierda.

Y lo que te pregunté antes era porque me chocaba que no hubiera ningún registro de la base de datos que en la columna E tenga los valores B13 a B16, por eso dudaba de que se usara la columna E y me parecía que era la B u otra la que había que usar.

Y eso es todo, prueba a hacer lo que te he dicho y si no te sale me lo dices. Si no es necesario no te mando el libro, así ahorro espacio en la cuenta de Gmail.

yo la tengo hecha asi, pero como son muchas celda el libro se me pone lento y dura calculando casi diez minuto, porque lo códigos que tu me das yo lo voy adaptando a mis necesidades pero por formula no me funcionan

Eso no puede ser. El motivo de que te tarde tanto no puede ser ese, esas operaciones que te he dicho yo tienen que ser prácticamente instantáneas, más rápido que si las hiciéramos con una macro. Mándame el libro que dices que te tarda tanto en calcular.

fijate te voy a manda todo lo que he hecho con lo que me haz mandado desde hace año y medio es un sistemita de costo de producción para un comedor industrial donde trabajo te explico lo que te voy a enviar como casi todo es gracias a tu buena voluntad de ayudarme todo estaba buy bien y estaba rápida pero no se que ocurre

existe una hoja llamada registro de entradas que envía las entradas lo que llega al almacen sea por compra traslado de otro sucursal u inventario que es el primero que envío otra hoja llamada registro de salida que el almacenista le da salida a los ingredientes para producción en esa hoja otro botón que es lo que me enviaste que no termino de adaptarlo de ingredientes en proceso , otrahoja llamada comensales es decir solo se trabaja en 3 hojas y otra hoja llamada estado de ganancias y perdida que me va a mostrar en cuanto salieron los platos de desayuno almuerzo y cena dándole al botón calcular costo y seleccionando la fecha si quiero un dia escojo la fecha inicial y final de un dia

has la prueba y me vas preguntando ya tengo desayunos almuerzo y cenas desde el 24 de febrero al 06 de marzo como prueba usalo ábrelo y dale al botón calcular costos en la hoja estado de ganancia o perida

y mira las gráficas abajo en la hoja estado de ganancia y perdida hay te muesta si ubo perdida o ganancia por desayuno almuerzo y cena tengo la lógica tu los códigos se de contabilidad costo pero hay boy

ya te lo envíe hay te aparece las ventas en unidades en bolívares venezolano lo que se gasto en esa producción los datos lo carga el almacenista y lo descarga yo solo le doy al botón calcula y listo me dice que paso

pero no se que paso que cuando le doy al botón registrar salida se puso lento y dura

se me olvido decirte la clave es 191119al

hay te envíe lo que he hecho todo me funcionaba bien pero ahora no se que paso los botones d la hoja registro de salidas cuando lo uso se pone demaciodo lento no se como arreglarlo antes estaba bien cargaba rapido

si pudieras mejorarme la rapidez del libro en la hoja registro de salida cuando envío los datos a bdsalida dura mucho y días antes no tardaba

Ten un poco de paciencia, tengo unos días con mucho trabajo dentro y fuera de la página. Cuando pueda haré algo pero tardaré días.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas