cancel
Showing results for 
Search instead for 
Did you mean: 
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

View solution in original post

@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
Power BI October Update 2021.jpg

Power BI Release

Click here to read more about the October 2021 Release!

Microsoft Ignite 768x460.png

Find your focus

Explore the latest tools,training sessions,technical expertise, networking and more.

Power BI Womens Summit 2021 768 x460.jpg

Interviews, learning sessions, allies, and more!

#PowerBIWomenSummit

Teds Dev Camp Oct. 2021 768x460.jpg

Power BI Dev Camp - October 28th, 2021

Mark your calendars and join us for our next Power BI Dev Camp!