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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

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.

PaulDBrown
Community Champion
Community Champion

@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
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors