Macro para contar un rango según celda

Quiero Contar los días sin venta según mi rango de fechas que le voy a dar(FECHA INICI, CORTE), de acuerdo al CÓDIGO de producto en (AM18) y que sume el Total de venta de ese rango.

2 respuestas

Respuesta
1

Te anexo las fórmulas

Para contar

=SUMAPRODUCTO((A2:A15=AM18)*(B1:AT1>=AN18)*(B1:AT1<=AO18)*(B2:AT15=""))

Para sumar

=SUMAPRODUCTO((A2:A15=AM18)*(B1:AT1>=AN18)*(B1:AT1<=AO18)*(B2:AT15))

Cambia los siguientes datos según tu hoja

Rango de códigos: A2:A15

Rango de fechas: B1:AT1

Rango de valores de venta: B2:AT15


Respuesta

. 31.03.17 #Fórmula Matricial

Buenas, Marco

Lo que buscas se puede resolver con un par de fórmulas matriciales.

Es algo así como las fórmulas SUMAR. SI() o CONTAR. SI(), que suman o cuentan sobre la base de una condición, pero estas permiten agregar más condiciones y eventualmente modificar datos antes de usarlos para calcular "en el aire".

Estas fórmulas también son conocidas como CSE formulas, por Control+Shift+Enter que son las teclas que hay que presionar simultáneamente después de tipear la fórmula (no basta con Enter). Un par de llaves {} se agregarán automáticamente, encerrando la fórmula. Esto es FUNDAMENTAL para que funcione.

Al ser fórmulas, tiene la (enorme) ventaja de que el resultado es inmediato, sin necesidad de acordarse de ejecutar macro alguna.

Veamos en tu caso cómo usarlas para calcular la suma de las ventas de ese código en el período que le indiques.

En la celda AN20 coloca la siguiente fórmula, pero no presiones Enter aún

=SUMA(SI($AM$18=$A$2:$A$15;SI($B$1:$AT$1>=$AN$18;SI($B$1:$AT$1<=$AO$18;$B$2:$AT$15))))

Recuerda presionar Ctrl+Shift+Enter para ingresarla en la celda.

[Considera si usas comas o punto y coma para separar argumentos de las funciones. Yo usé ";"]

Esta fórmula tomara del rango rectangular B2:AT15 aquellos valores de la fila donde esté el código indicado en la celda AM18 y donde la fecha de la columna sea igual o mayor que la de incio y sea menor que la de fin.

La fórmula para contar los dias que NO hubo venta es similar pero un poco más compleja (por eso la dejé para después)

En la celda AN19, pega la siguiente fórmula:

=SUMA(SI($AM$18=$A$2:$A$15;SI($B$1:$AT$1>=$AN$18;SI($B$1:$AT$1<=$AO$18;SI($B$2:$AT$15=0;1;0)))))}

y luego, ya sabes, Ctrl+Shift+Enter

Con los mismos criterios que la anterior, ésta agrega uno condicional más que es que en esa fila la venta haya sido cero.

Así, armará una matriz de 1 (unos) para cada valor igual a cero y luego los sumará (que equivale a su forma de CONTAR las celdas vacías).

Coméntame si mi solución resuelve lo que necesitabas -y, en tal caso, agradeceré que califiques mi contribución- o escríbeme de nuevo aquí, si precisas más apoyo con esto.

Un abrazo

Fernando

.

Buenas,

Aquí va una imagen de un reproducción de tu planilla con ambas fórmulas en ella:

O esta otra donde simplemente cambié el código en AM18 a 10002:

Como verás, funciona bien.

Espero que también a ti. Sino, me escribes, nuevamente.

Abrazo
Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas