cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
cnschulz
Helper IV
Helper IV

Datos fijos y filtrados en la tabla

Hola

Tengo un tema interesante que estoy seguro es simple, pero me ha roto el cerebro.

Estoy escribiendo un informe que muestra los trabajos asignados a las tripulaciones semanalmente. Se utiliza para pronosticar la disponibilidad y tiene en cuenta la licencia. Tengo dos tablas que usan WEEKNUMBER y CREWID para clasificar los datos. Su funcionamiento bien (ver más abajo) pero no necesito introducir JOB PRIORITY como un filtro y esto me rompe la mente.

SemanaEquipoHoras de trabajoHorario disponibleequilibrar
202046A200220+20
202046B2202200
202046C250190-60

Necesito introducir JOB PRIORITY en la tabla JOB y mostrar la siguiente tabla:

SemanaEquipoPrioridadHoras de trabajoHorario disponibleEquilibrio prioritarioBalance general
202046A1150220+70+20
202046A250220+170+20
202046B120220+2000
202046B2100220+1200
202046B3100220+1200
202046C11901900-60
202046C250190+140-60
202046C310190+180-60

Así que como puede ver arriba, debemos dejar todos los trabajos de prioridad 2 y 3 para la tripulación C o reasignar a otro personal.

A continuación, tenemos que ser capaces de filtrar por prioridad (es decir, "¿qué pasaría si sólo hiciéramos trabajos de prioridad 1?") La tabla debe tener este aspecto:

SemanaEquipoPrioridadHoras de trabajoHorario disponibleEquilibrio prioritarioBalance general
202046A1150220+70+20
202046B120220+2000
202046C11901900-60

Luego existe la posibilidad de seleccionar *multiple* prioritas que ni siquiera he considerado todavía!!

¿Alguien puede ofrecer algún consejo sobre la creación de esta estructura? Muy apreciado. 🙂

1 ACCEPTED SOLUTION
v-yingjl
Community Support
Community Support

Hola @cnschulz ,

En primer lugar, puede crear una columna personalizada [Priority] en la consulta power para la tabla JOB, toda la consulta es así, cerrarla y aplicarla.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMjAxU9JRcgRiQ1MDpVgdNEF0MScgNsIiZmhAjKAzSNASiyC6NWCFQLFYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Week = _t, Crew = _t, #"Job Hours" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Week", Int64.Type}, {"Crew", type text}, {"Job Hours", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type",{"Crew"},{{"Rows", each Table.AddIndexColumn(_, "Index", 1), type table}}),
    #"Expanded Rows" = Table.ExpandTableColumn(#"Grouped Rows", "Rows", {"Week", "Job Hours", "Index"}, {"Week", "Job Hours", "Priority"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Expanded Rows",{"Week", "Crew", "Priority", "Job Hours"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Reordered Columns",{{"Week", Int64.Type}, {"Priority", Int64.Type}, {"Job Hours", Int64.Type}})
in
    #"Changed Type1"

JOB.png

A continuación, cree algunas columnas calculadas para obtener la salida esperada en la tabla JOB:

Available Hours =
CALCULATE (
    SUM ( AVAILABILITY[Available Hours] ),
    FILTER ( ALL ( AVAILABILITY ), 'AVAILABILITY'[Crew] = EARLIER ( JOB[Crew] ) )
)

Priority Balance = [Available Hours] - [Job Hours]

Overall Balance =
[Available Hours]
    - CALCULATE (
        SUM ( JOB[Job Hours] ),
        FILTER ( ALL ( JOB ), 'JOB'[Crew] = EARLIER ( 'JOB'[Crew] ) )
    )

La tabla JOB final es la siguiente:

pri.png

Prioridad de filtro 1:

p1.png

Adjunto un archivo de muestra en el siguiente, espera ayudarle.

Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

3 REPLIES 3
v-yingjl
Community Support
Community Support

Hola @cnschulz ,

En primer lugar, puede crear una columna personalizada [Priority] en la consulta power para la tabla JOB, toda la consulta es así, cerrarla y aplicarla.

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMjAxU9JRcgRiQ1MDpVgdNEF0MScgNsIiZmhAjKAzSNASiyC6NWCFQLFYAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Week = _t, Crew = _t, #"Job Hours" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Week", Int64.Type}, {"Crew", type text}, {"Job Hours", Int64.Type}}),
    #"Grouped Rows" = Table.Group(#"Changed Type",{"Crew"},{{"Rows", each Table.AddIndexColumn(_, "Index", 1), type table}}),
    #"Expanded Rows" = Table.ExpandTableColumn(#"Grouped Rows", "Rows", {"Week", "Job Hours", "Index"}, {"Week", "Job Hours", "Priority"}),
    #"Reordered Columns" = Table.ReorderColumns(#"Expanded Rows",{"Week", "Crew", "Priority", "Job Hours"}),
    #"Changed Type1" = Table.TransformColumnTypes(#"Reordered Columns",{{"Week", Int64.Type}, {"Priority", Int64.Type}, {"Job Hours", Int64.Type}})
in
    #"Changed Type1"

JOB.png

A continuación, cree algunas columnas calculadas para obtener la salida esperada en la tabla JOB:

Available Hours =
CALCULATE (
    SUM ( AVAILABILITY[Available Hours] ),
    FILTER ( ALL ( AVAILABILITY ), 'AVAILABILITY'[Crew] = EARLIER ( JOB[Crew] ) )
)

Priority Balance = [Available Hours] - [Job Hours]

Overall Balance =
[Available Hours]
    - CALCULATE (
        SUM ( JOB[Job Hours] ),
        FILTER ( ALL ( JOB ), 'JOB'[Crew] = EARLIER ( 'JOB'[Crew] ) )
    )

La tabla JOB final es la siguiente:

pri.png

Prioridad de filtro 1:

p1.png

Adjunto un archivo de muestra en el siguiente, espera ayudarle.

Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

PaulDBrown
Super User
Super User

@cnschulz

¿Cómo se configura el modelo?





Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






La tabla JOB contiene

WeekNumber, CrewId, JobHours

La tabla AVAILABILITY contiene

WeekNumber, CrewId y HoursAvailable

Ahora necesito introducir Priority en la tabla JOB, que hará una relación de muchos a uno y romperá el resumen.

Helpful resources

Announcements
Power BI December 2021 Update_carousel 768x460.jpg

Check it Out!

Click here to read more about the December 2021 Updates!

User Group Leader Meeting January 768x460.png

Calling all User Group Leaders!

Don't miss the User Group Leader meetings on January, 24th & 25th, 2022.

Jan 2022 Dev Camp 768x460 copy.png

Power BI Dev Camp- January 27th, 2022

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