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?
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!