Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
Syndicate_Admin
Administrator
Administrator

Distribución de datos mensuales por categoría a través de fechas diarias por categoría

He estado tratando durante demasiado tiempo de resolver esto.

Estos son mis datos mensuales

hbusche_0-1632171496741.png

Esta es mi tabla de calendario (no pude averiguar cómo conseguir que me diera las fechas de septiembre también)

hbusche_1-1632171580370.png

Necesito una columna o medida que distribuya mis datos mensuales de manera uniforme sobre mis fechas diarias por propnum para S370 y S371

Pude acercarme usando esta medida en la tabla del calendario, pero no lo hace por propnum, y solo para S370.

Daliy Value Measure = 
VAR DaysofMonth =
    DAY ( EOMONTH ( MAX ( 'Calendar'[Date] ), 0 ) )
RETURN
    CALCULATE (
        SUM ( 'FACT TABLE'[S370] ),
        FILTER (
            ALL ( 'Fact Table' ),
            'FACT TABLE'[OUTDATE]
                >= EOMONTH ( MAX ( 'Calendar'[Date] ), -1 ) + 1
                && 'FACT TABLE'[OUTDATE] <= EOMONTH ( MAX ( 'Calendar'[Date] ), 0 )
        )
    ) / DaysofMonth

1 ACCEPTED SOLUTION

Hay @hbusche ,

Creé un archivo pbix de muestra(ver archivo adjunto),verifique si eso es lo que desea. Puede copiar los siguientes códigos aplicados en su Editor Avanzado:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bdBBCgMhDAXQu7geMD8xqZdoOxS6Gub+12gitGimC0Xw+ZN4HGV/PffH+46yFVRBZeI4sy8r57YArty/oPuSnoVMEWa+6YW0KvQLuUXZ1XCKUaJ4pdnMOWh+/w/pFITWxxCel5TNUdJbKCxNSZoePJRCkdncuzMazHViS/tQHX+FC1sGII2iRuS9nR8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [PROPNUM = _t, OUTDATE = _t, S370 = _t, S371 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"PROPNUM", type text}, {"OUTDATE", type date}, {"S370", Int64.Type}, {"S371", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "D_Date", each List.Dates(Date.StartOfMonth([OUTDATE]), Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1, #duration(1, 0, 0, 0))),
    #"Expanded D_Date" = Table.ExpandListColumn(#"Added Custom", "D_Date"),
    #"Added Custom1" = Table.AddColumn(#"Expanded D_Date", "Daily S370", each [S370]/(Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1)),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Daily S371", each [S371]/(Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1)),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom2",{"OUTDATE", "S370", "S371"})
in
    #"Removed Columns"let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bdBBCgMhDAXQu7geMD8xqZdoOxS6Gub+12gitGimC0Xw+ZN4HGV/PffH+46yFVRBZeI4sy8r57YArty/oPuSnoVMEWa+6YW0KvQLuUXZ1XCKUaJ4pdnMOWh+/w/pFITWxxCel5TNUdJbKCxNSZoePJRCkdncuzMazHViS/tQHX+FC1sGII2iRuS9nR8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [PROPNUM = _t, OUTDATE = _t, S370 = _t, S371 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"PROPNUM", type text}, {"OUTDATE", type date}, {"S370", Int64.Type}, {"S371", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "D_Date", each List.Dates(Date.StartOfMonth([OUTDATE]), Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1, #duration(1, 0, 0, 0))),
    #"Expanded D_Date" = Table.ExpandListColumn(#"Added Custom", "D_Date"),
    #"Added Custom1" = Table.AddColumn(#"Expanded D_Date", "Daily S370", each [S370]/(Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1)),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Daily S371", each [S371]/(Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1)),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom2",{"OUTDATE", "S370", "S371"})
in
    #"Removed Columns"

yingyinr_0-1632452001238.png

Saludos

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

@AllisonKennedy Tengo la tabla mensual, necesito crear la tabla diaria. Aquí solo estoy mostrando propnum1 en la tabla diaria y solo el primer mes y unos pocos días, pero creo que la idea es clara de que necesitaría una tabla completa con Propnum2 y 3 y fechas asociadas bajo propnum1.

hbusche_1-1632242714184.png

Hay @hbusche ,

Creé un archivo pbix de muestra(ver archivo adjunto),verifique si eso es lo que desea. Puede copiar los siguientes códigos aplicados en su Editor Avanzado:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bdBBCgMhDAXQu7geMD8xqZdoOxS6Gub+12gitGimC0Xw+ZN4HGV/PffH+46yFVRBZeI4sy8r57YArty/oPuSnoVMEWa+6YW0KvQLuUXZ1XCKUaJ4pdnMOWh+/w/pFITWxxCel5TNUdJbKCxNSZoePJRCkdncuzMazHViS/tQHX+FC1sGII2iRuS9nR8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [PROPNUM = _t, OUTDATE = _t, S370 = _t, S371 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"PROPNUM", type text}, {"OUTDATE", type date}, {"S370", Int64.Type}, {"S371", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "D_Date", each List.Dates(Date.StartOfMonth([OUTDATE]), Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1, #duration(1, 0, 0, 0))),
    #"Expanded D_Date" = Table.ExpandListColumn(#"Added Custom", "D_Date"),
    #"Added Custom1" = Table.AddColumn(#"Expanded D_Date", "Daily S370", each [S370]/(Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1)),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Daily S371", each [S371]/(Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1)),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom2",{"OUTDATE", "S370", "S371"})
in
    #"Removed Columns"let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("bdBBCgMhDAXQu7geMD8xqZdoOxS6Gub+12gitGimC0Xw+ZN4HGV/PffH+46yFVRBZeI4sy8r57YArty/oPuSnoVMEWa+6YW0KvQLuUXZ1XCKUaJ4pdnMOWh+/w/pFITWxxCel5TNUdJbKCxNSZoePJRCkdncuzMazHViS/tQHX+FC1sGII2iRuS9nR8=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [PROPNUM = _t, OUTDATE = _t, S370 = _t, S371 = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"PROPNUM", type text}, {"OUTDATE", type date}, {"S370", Int64.Type}, {"S371", Int64.Type}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "D_Date", each List.Dates(Date.StartOfMonth([OUTDATE]), Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1, #duration(1, 0, 0, 0))),
    #"Expanded D_Date" = Table.ExpandListColumn(#"Added Custom", "D_Date"),
    #"Added Custom1" = Table.AddColumn(#"Expanded D_Date", "Daily S370", each [S370]/(Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1)),
    #"Added Custom2" = Table.AddColumn(#"Added Custom1", "Daily S371", each [S371]/(Number.From([OUTDATE]-Date.StartOfMonth([OUTDATE]))+1)),
    #"Removed Columns" = Table.RemoveColumns(#"Added Custom2",{"OUTDATE", "S370", "S371"})
in
    #"Removed Columns"

yingyinr_0-1632452001238.png

Saludos

@yingyinr Muchas gracias por proporcionar los pasos y el archivo. Pude seguir lo que hiciste, y aprendí mucho en el proceso y pude aplicarlo a mi archivo más grande. ¡Gracias!

@AllisonKennedy Tengo una tabla de fechas adecuada en el archivo, así como una tabla propnum. No podía hacer que funcionara usando la tabla de fechas completa y me estaba confundiendo. Encontré una sugerencia en este foro que me llevó a donde estoy con una tabla de calendario más simple, y ahora estoy atascado de nuevo ya que el ejemplo no mostró cómo hacerlo con diferentes categorías, o para mí, propnums. Estoy feliz de probar algo diferente usando la tabla de fechas completa que tengo.

Tengo datos mensuales (diferente número de meses y meses de inicio y parada para cada uno, aunque todos son fechas de fin de mes) para una gran cantidad de propnums diferentes que necesito para hacer datos diarios. Ese es el objetivo al que no estoy llegando ahora.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.