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
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
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.