top of page
Foto del escritorJaime Franco Jimenez

Acumulados en power Pivot

Si estamos cursando el curso de Excel básico hasta avanzado, en el módulo 441, perteneciente a Power Query, vimos como calcular acumulados por día, y, por mes.





Si estamos cursando el curso de Power Query, lo tenemos en el módulo 24.





Y, si estamos cursando el curso de Excel avanzado, lo tenemos sen el módulo 55.





Pues, vamos a volver a crear los acumulados, pero en Power Pivot, vamos a trabajar con el mismo modelo que usamos para los ejemplos anteriores, tenemos fechas del año 2021, y, sus totales.











Vamos a llevar este modelo a Power Pivot, para ello, con una celda dentro del modelo, vamos a la pestaña de Power Pivot, y, hacemos clic en agregar a modelo de datos.


















Para crear este acumulado vamos a usar la función EARLIER, que nos devuelve el valor actual de la fila que le indiquemos, esta función tiene dos argumentos, que es la columna con la que vamos a trabajar, y, numero de columna, este ultimo argumento nos devuelve el valor anterior, veamos un ejemplo de como funciona esta función, decir, que esta función se usa en columnas calculadas.


Voy a agregar una columna calculada.


Para el ejemplo con la función COUNTROWS, que nos devolverá un recuento.


=COUNTROWS(


Como argumento tabla de COUNTROWS, ponemos la función FILTER.


=COUNTROWS(FILTER(


Como argumento tabla de la función FILTER, ponemos la tabla ventas.

=COUNTROWS(FILTER(Ventas


Y, como argumento filterexpression, ponemos la función la columna fecha.


=COUNTROWS(FILTER(Ventas;Ventas[Fecha]


Ahora, vamos a comparar cada fecha si es menor o igual que el valor anterior, para ello, es donde usamos la función EARLIER.


=COUNTROWS(FILTER(Ventas;Ventas[Fecha]<=EARLIER


Y ponemos la columna fecha.


Cerramos paréntesis, y, aceptamos.


=COUNTROWS(FILTER(Ventas;Ventas[Fecha]<=EARLIER(Ventas[Fecha])))


Tenemos los siguientes resultados.












Vemos que, para la primera fecha, solo hay una fecha inferior a ella, que es ella misma, para la segunda fecha, hay dos fechas encima de ellas, que es la primera y, la misma segunda, y, así con las demás, porque el operador de comparación es menor o igual.


Si ahora borramos COUNTROWS, y, ponemos la función CALCULATE, donde como argumento expresión, uso la función SUM aplicada a la columna total.


=CALCULATE(SUM(Ventas[Total])


Y como argumento filtrar1, dejamos la función FILTER.


=CALCULATE(SUM(Ventas[Total]);FILTER(Ventas;Ventas[Fecha]<=EARLIER(Ventas[Fecha])))


Obtenemos el acumulado, porque solo suma las cantidades de la columna total, siempre que el valor de una celda sea inferior al anterior.


Le cambio el nombre a la columna, y, le pongo acumulados.










Ahora, vamos a agregar otra columna, para calcular el acumulado por mes.


Agregamos una nueva columna calculada, que la llamamos acumulados por mes.


Copiar la expresión anterior y la pegamos, porque nos va a valer, ya que solo debemos de añadir una nueva condición.


Dicha condición la debemos de poner después de la primera condición dentro de FILTER.







Entonces, se deben de cumplir dos condiciones dentro de FILTER, la primera de ellas ya la tenemos, para añadir una segunda condición, y, ambas condiciones se deben de cumplir, vamos a usar el doble ampersand, que es igual que el operador lógico Y en Excel.


=CALCULATE(SUM(Ventas[Total]);FILTER(Ventas;Ventas[Fecha]<=EARLIER(Ventas[Fecha]) &&


Para la segunda condición, es la misma columna, es decir, la columna fecha.


=CALCULATE(SUM(Ventas[Total]);FILTER(Ventas;Ventas[Fecha]<=EARLIER(Ventas[Fecha]) && Ventas[Fecha]


Y, debe de ser mayor que el final de mes del mes anterior, por lo que usamos la función EOMONTH.


=CALCULATE(SUM(Ventas[Total]);FILTER(Ventas;Ventas[Fecha]<=EARLIER(Ventas[Fecha]) && Ventas[Fecha]>EOMONTH


Como argumento fecha de comienzo, tenemos que usar la función EARLIER, que queremos el final de mes de la fecha anterior.


=CALCULATE(SUM(Ventas[Total]);FILTER(Ventas;Ventas[Fecha]<=EARLIER(Ventas[Fecha]) && Ventas[Fecha]>EOMONTH(EARLIER(Ventas[Fecha])


Como argumento meses de la función EOMONTH, ponemos -1, para que nos de el final del mes anterior.


=CALCULATE(SUM(Ventas[Total]);FILTER(Ventas;Ventas[Fecha]<=EARLIER(Ventas[Fecha]) && Ventas[Fecha]>EOMONTH(EARLIER(Ventas[Fecha]);-1)


Cerramos paréntesis y aceptamos.


Podemos ver como tenemos un acumulado, pero por meses.














Ahora, vamos a crear una tabla dinámica, para ello, desde la pestaña de inicio, desplegamos tabla dinámica, y, seleccionamos tabla dinámica.







La colocamos al lado del modelo.











Ya tenemos nuestro ejemplo realizado.



57 visualizaciones0 comentarios

Entradas Recientes

Ver todo

Comments


bottom of page