Suma móvil

Un usuario Pregunto ✅

Anónimo

Hola,

Estoy buscando crear una suma total por mes como se muestra a continuación en el total acumulado.

Año

Región

Gato

Categoría

MES

Ahorros

Total corriente

2018

A

XX

Servicios

enero

50

50

2018

A

XX

Servicios

febrero

sesenta y cinco

115

2018

A

XX

Servicios

marcha

45

160

2018

B

YY

Venta minorista

enero

21

21

2018

B

YY

Venta minorista

febrero

45

66

2018

B

YY

Venta minorista

marcha

23

89

2018

C

ZZ

Equipo

enero

12

12

2018

C

ZZ

Equipo

febrero

55

67

2018

C

ZZ

Equipo

marcha

66

133

Puedo ver cómo hacer esto en DAX, pero estoy un poco confundido ya que estoy trabajando con texto y no con fechas (también tengo una columna llamada Número de mes (1-12) por mes que podría usar.

¿Es posible a través de DAX?

Gracias

Zubair_Muhammad

En respuesta a Anónimo

@Anónimo

Prueba esto como MEDIDA

Running_Total =
CALCULATE (
    SUM ( Targets[Savings] ),
    FILTER (
        ALLEXCEPT ( Targets, Targets[Category] ),
        Targets[Date] <= SELECTEDVALUE ( Targets[Date] )
    )
)

o esto como una COLUMNA CALCULADA

Running_Total =
CALCULATE (
    SUM ( Targets[Savings] ),
    FILTER (
        ALLEXCEPT ( Targets, Targets[Category] ),
        Targets[Date] <= EARLIER ( Targets[Date] )
    )
)

Zubair_Muhammad

En respuesta a Anónimo

@Anónimo

Creo que cualquier columna que use como cortadora debería ser parte de la función ALLEXCEPT. Por ejemplo, si usa la región como SLICER

Entonces la medida sería

Running_Total =
CALCULATE (
    SUM ( Targets[Savings] ),
    FILTER (
        ALLEXCEPT ( Targets, Targets[Category] ,Targets[Region]),
        Targets[Date] <= SELECTEDVALUE ( Targets[Date] )
    )
)

jthomson

Intentaría crear un campo de fecha ficticia a partir de la información que tiene: calcular una columna hasta la FECHA ([Year], [whateveryourmonthnumbercolumniscalled], 1) que debe crear un campo con el primer día del mes en cuestión

Anónimo

En respuesta a jthomson

Genial, lo hice, pero cuando coloco el Dax en la nueva medida, no se acumula por mes;

Mi dax que he usado está abajo;

Rollo de ahorro =
CALCULAR (
SUM (objetivos[Savings] ),
FILTRO (
TODOS (objetivos[Date] ),
Objetivos[Date] <= MAX (objetivos[Date] )
)
)

¿Me pregunto qué podría estar saliendo mal?

Zubair_Muhammad

En respuesta a Anónimo

@Anónimo

Prueba esto como MEDIDA

Running_Total =
CALCULATE (
    SUM ( Targets[Savings] ),
    FILTER (
        ALLEXCEPT ( Targets, Targets[Category] ),
        Targets[Date] <= SELECTEDVALUE ( Targets[Date] )
    )
)

o esto como una COLUMNA CALCULADA

Running_Total =
CALCULATE (
    SUM ( Targets[Savings] ),
    FILTER (
        ALLEXCEPT ( Targets, Targets[Category] ),
        Targets[Date] <= EARLIER ( Targets[Date] )
    )
)

Anónimo

En respuesta a Zubair_Muhammad

Arr pensó que era 100%, pero esto funciona si la cortadora es Catrgory pero no si es cualquiera de las otras cortadoras. 😞

Zubair_Muhammad

En respuesta a Anónimo

@Anónimo

Cuando uso tus datos y uso la Región como segmentador … Parece que funciona bien.

¿Qué cortadora usaste?

rollingsumfiltered.png

Anónimo

En respuesta a Zubair_Muhammad

Arr, sí, pero en todo mi conjunto de datos es un poco diferente, tengo un ejemplo de actualización de lo que podría suceder.

Como puede ver a continuación, el gato de la región y la categoría pueden ser diferentes a la suerte que tuvo el gato de la región y la categoría. 😞

Por eso la suma siempre parecía correcta.

Año Región Gato Categoría MES Ahorros Total corriente
2018 A XX Servicios enero 50 50
2018 A XX Servicios febrero sesenta y cinco 115
2018 B ZZ Servicios marcha 45 160
2018 A YY Venta minorista enero 21 21
2019 B XX Venta minorista febrero 45 66
2018 B YY Venta minorista marcha 23 89
2018 B ZZ Equipo enero 12 12
2018 C ZZ Equipo febrero 55 67
2019 C YY Equipo marcha 66 133

Anónimo

En respuesta a Anónimo

Agregando a eso, estoy usando muchas cortadoras, solo las normales, pero Cat, Month, categoría, etc.

Zubair_Muhammad

En respuesta a Anónimo

@Anónimo

Creo que cualquier columna que use como cortadora debería ser parte de la función ALLEXCEPT. Por ejemplo, si usa la región como SLICER

Entonces la medida sería

Running_Total =
CALCULATE (
    SUM ( Targets[Savings] ),
    FILTER (
        ALLEXCEPT ( Targets, Targets[Category] ,Targets[Region]),
        Targets[Date] <= SELECTEDVALUE ( Targets[Date] )
    )
)

Anónimo

En respuesta a Zubair_Muhammad

Genial, acabo de actualizar mi informe y esa dosis parece ser el caso gracias por toda su ayuda

Anónimo

En respuesta a Zubair_Muhammad

¡Gracias que funciona, comenzando a comprender mejor Dax ahora!

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *