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:
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:
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 |
Mis datos reales tienen más categorías de datos. Cuantas más categorías tengas, más locas se pondrán las cosas:
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
v-huizhn-msft
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.
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.
Atentamente,
Angelia
v-huizhn-msft
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.
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.
Atentamente,
Angelia