Los gráficos de áreas apiladas se ven distorsionados: intentando llenar los períodos faltantes con 0

Un usuario Pregunto ✅

jtgriffith

Estoy intentando usar el gráfico de áreas apiladas para mostrar valores a lo largo del tiempo, pero ocasionalmente faltan algunos de mis períodos de tiempo. Esto hace que el gráfico de áreas apiladas se vea distorsionado y sea difícil de leer.

Me gustaría solucionar este problema completando un valor de 0 para los períodos faltantes, pero no estoy seguro de si esto es posible con DAX.

Ejemplo: faltan algunos períodos en los datos:

C1 1/1/2016 29
C1 01/04/2016 39
C1 1/5/2016 24
C1 1/6/2016 18
C1 1/9/2016 18
C1 1/10/2016 26
C1 1/11/2016 18
C1 01/12/2016 39
C2 1/1/2016 30
C2 01/02/2016 33
C2 1/5/2016 35
C2 1/6/2016 17
C2 1/7/2016 34
C2 1/8/2016 31
C2 1/11/2016 26
C2 01/12/2016 15

En este ejemplo, faltan datos durante varios meses. El gráfico se vuelve complicado y difícil de leer:

g2.PNG

Cambiar el eje X a categórico mejora la situación, pero todavía tengo esas extrañas áreas en blanco y me falta un mes:

g2_cat.PNG

Si puedo encontrar una manera de completar todos los períodos que faltan con un 0 dinámicamente con DAX, creo que todo se verá un poco mejor:

C1 1/1/2016 29
C1 01/02/2016 0
C1 1/3/2016 0
C1 01/04/2016 39
C1 1/5/2016 24
C1 1/6/2016 18
C1 1/7/2016 0
C1 1/8/2016 0
C1 1/9/2016 13
C1 1/10/2016 26
C1 1/11/2016 18
C1 01/12/2016 39
C2 1/1/2016 30
C2 01/02/2016 33
C2 1/3/2016 0
C2 01/04/2016 0
C2 1/5/2016 35
C2 1/6/2016 17
C2 1/7/2016 34
C2 1/8/2016 31
C2 1/9/2016 0
C2 1/10/2016 0
C2 1/11/2016 26
C2 01/12/2016 15

g2_ fill.PNG

Mis datos reales tienen más categorías de datos. Cuantas más categorías tengas, más locas se pondrán las cosas:

d1.PNG

Es difícil mostrarlo sin volcar una tonelada de datos en esta publicación, pero estoy trabajando con muchas categorías y agrupaciones de observaciones, por lo que cada período de fecha ESTARÁ presente en algún lugar de los datos. Una solución alternativa que he considerado es pivotar en la columna de fecha, reemplazar los nulos con ceros y luego desvincularlos. Sin embargo, no creo que esta sea una solución sostenible.

Gracias

Hola @jtgriffith,

Después de la prueba, creo que su solución está bien. Para su requisito, debe agregar las filas en su tabla de recursos, es complejo lograrlo. Utilizo la siguiente solución, revísela.

1. Cree una tabla de calendario en Power Query, agregue las categorías C1 y C2.

let
    Source = List.Dates(#date(2016,1,1),366,#duration(1,0,0,0)),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type datetime}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Date.Day([Column1])),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = 1)),
    #"Added Custom1" = Table.AddColumn(#"Filtered Rows", "Custom.1", each "C1"),
    #"Renamed Columns" = Table.RenameColumns(#"Added Custom1",{{"Custom.1", "C1"}}),
    #"Added Custom2" = Table.AddColumn(#"Renamed Columns", "C2", each "C2"),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Added Custom2", {"Column1", "Custom"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Columns",{"Value"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Removed Columns",{{"Column1", "Date"}, {"Attribute", "Category"}})
in
    #"Renamed Columns1"

2. Cree una columna calculada en las tablas Table1 y Calendar.

Column = Table1[Date]&Table1[Category]
Column = 'Calendar'[Date]&'Calendar'[Category]

3. Cree una relación entre las tablas por columna calculada.

1.PNG

4. Cree una columna calculada usando la función RELACIONADA en la tabla Calendario, usará el Calendario para crear la imagen. Descargue los archivos adjuntos para probar.

2.PNG

Atentamente,
Angelia

Hola @jtgriffith,

Después de la prueba, creo que su solución está bien. Para su requisito, debe agregar las filas en su tabla de recursos, es complejo lograrlo. Utilizo la siguiente solución, revísela.

1. Cree una tabla de calendario en Power Query, agregue las categorías C1 y C2.

let
    Source = List.Dates(#date(2016,1,1),366,#duration(1,0,0,0)),
    #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
    #"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type datetime}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Date.Day([Column1])),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = 1)),
    #"Added Custom1" = Table.AddColumn(#"Filtered Rows", "Custom.1", each "C1"),
    #"Renamed Columns" = Table.RenameColumns(#"Added Custom1",{{"Custom.1", "C1"}}),
    #"Added Custom2" = Table.AddColumn(#"Renamed Columns", "C2", each "C2"),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Added Custom2", {"Column1", "Custom"}, "Attribute", "Value"),
    #"Removed Columns" = Table.RemoveColumns(#"Unpivoted Columns",{"Value"}),
    #"Renamed Columns1" = Table.RenameColumns(#"Removed Columns",{{"Column1", "Date"}, {"Attribute", "Category"}})
in
    #"Renamed Columns1"

2. Cree una columna calculada en las tablas Table1 y Calendar.

Column = Table1[Date]&Table1[Category]
Column = 'Calendar'[Date]&'Calendar'[Category]

3. Cree una relación entre las tablas por columna calculada.

1.PNG

4. Cree una columna calculada usando la función RELACIONADA en la tabla Calendario, usará el Calendario para crear la imagen. Descargue los archivos adjuntos para probar.

2.PNG

Atentamente,
Angelia

Deja un comentario

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