Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more.
Get startedGrow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.
Tengo una tabla WorkPerDay que me dice cuántas horas debe trabajar cada persona, debe trabajar por día.
id | | personId fecha | horas
--------------------------
0 | 0 | 01.01.2022 | 8
1 | 0 | 02.01.2022 | 8
2 | 0 | 03.01.2022 | 8
3 | 1 | 01.01.2022 | 8
4 | 1 | 02.01.2022 | 8
5 | 1 | 03.01.2022 | 8
También tengo una tabla Tareas que describe las tareas que deben hacerse, cuándo deben hacerse y cuánto tiempo tardan en hacerse.
id | inicioFecha | dueDate | totalHoras
---------------------------------------
0 | 01.01.2022 | 08.01.2022 | 14
1 | 07.01.2022 | 08.01.2022 | 10
Mi objetivo es crear un gráfico donde pueda comparar el total de horas disponibles (basado en la tabla workPerDay) y las horas de trabajo requeridas de acuerdo con la tabla de tareas. La hora de trabajo por día por tarea debe calcularse dividiendo el total de horas de manera uniforme entre la fecha de inicio y la fecha de vencimiento. Así que para la identificación 0 requería 2 horas de trabajo en cada una de 01,02,03,04,05,06,07.01.2022.
Mi idea sería hacer estallar la tabla de tareas en fechas individuales
id | | taskId Fecha | horas
---------------------------------------
0 | 0 | 01.01.2022 | 2
1 | 0 | 02.01.2022 | 2
2 | 0 | 03.01.2022 | 2
3 | 0 | 04.01.2022 | 2
4 | 0 | 05.01.2022 | 2
5 | 0 | 06.01.2022 | 2
6 | 0 | 07.01.2022 | 2
7 | 1 | 07.01.2022 | 10
Que luego podría relacionar con mi tabla WorkPerDay por fecha.
El problema es que no sé si esta es la idea correcta, y tampoco cómo empezar a hacer esto. ¡Cualquier ayuda sería apreciada!
Solved! Go to Solution.
En ella, @claudeHasler
Sí. Es una idea ejecutable.
Acerca de cómo convertir la tabla de tareas en fechas individuales, puede intentar seguir los pasos en PowerQuery.
1.agregar columnas personalizadas para calcular los días de intervalo y las horas de trabajo requeridas por día
=Duration.TotalDays([dueDate]-[startDate])
=[totalHours]/[Custom]
2.agregue otra lista para contener todas las fechas en este período (List.Dates )
=List.Dates([startDate],[Custom],#duration(1, 0, 0, 0))
3.Gaste la lista -> quite la columna que no desea -> cambie el nombre de la nueva columna->agregar columna de índice
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlDSUTIyMDLSNTAEImSOBZBjaKIUqxOthCJujqHIQCk2FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, startDate = _t, dueDate = _t, totalHours = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"startDate", type date}, {"dueDate", type date}, {"totalHours", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Duration.TotalDays([dueDate]-[startDate])),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Hours", each [totalHours]/[Custom]),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Custom.1", each List.Dates([startDate],[Custom],#duration(1, 0, 0, 0))),
#"Expanded Custom.1" = Table.ExpandListColumn(#"Added Custom2", "Custom.1"),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom.1",{"startDate", "dueDate", "totalHours", "Custom"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom.1", "Date"}, {"ID", "TaskID"}}),
#"Added Index" = Table.AddIndexColumn(#"Renamed Columns", "Index", 0, 1, Int64.Type),
#"Reordered Columns" = Table.ReorderColumns(#"Added Index",{"Index", "TaskID", "Date", "Hours"})
in
#"Reordered Columns"
Consulte mi archivo de muestra para obtener más detalles.
Saludos
Equipo de soporte de la comunidad _ Eason
En ella, @claudeHasler
Sí. Es una idea ejecutable.
Acerca de cómo convertir la tabla de tareas en fechas individuales, puede intentar seguir los pasos en PowerQuery.
1.agregar columnas personalizadas para calcular los días de intervalo y las horas de trabajo requeridas por día
=Duration.TotalDays([dueDate]-[startDate])
=[totalHours]/[Custom]
2.agregue otra lista para contener todas las fechas en este período (List.Dates )
=List.Dates([startDate],[Custom],#duration(1, 0, 0, 0))
3.Gaste la lista -> quite la columna que no desea -> cambie el nombre de la nueva columna->agregar columna de índice
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlDSUTIyMDLSNTAEImSOBZBjaKIUqxOthCJujqHIQCk2FgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ID = _t, startDate = _t, dueDate = _t, totalHours = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"ID", Int64.Type}, {"startDate", type date}, {"dueDate", type date}, {"totalHours", Int64.Type}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each Duration.TotalDays([dueDate]-[startDate])),
#"Added Custom1" = Table.AddColumn(#"Added Custom", "Hours", each [totalHours]/[Custom]),
#"Added Custom2" = Table.AddColumn(#"Added Custom1", "Custom.1", each List.Dates([startDate],[Custom],#duration(1, 0, 0, 0))),
#"Expanded Custom.1" = Table.ExpandListColumn(#"Added Custom2", "Custom.1"),
#"Removed Columns" = Table.RemoveColumns(#"Expanded Custom.1",{"startDate", "dueDate", "totalHours", "Custom"}),
#"Renamed Columns" = Table.RenameColumns(#"Removed Columns",{{"Custom.1", "Date"}, {"ID", "TaskID"}}),
#"Added Index" = Table.AddIndexColumn(#"Renamed Columns", "Index", 0, 1, Int64.Type),
#"Reordered Columns" = Table.ReorderColumns(#"Added Index",{"Index", "TaskID", "Date", "Hours"})
in
#"Reordered Columns"
Consulte mi archivo de muestra para obtener más detalles.
Saludos
Equipo de soporte de la comunidad _ Eason
@claudeHasler , la primera tabla a la que puede unirse con la tabla de fechas para la segunda, puede omitir unirse con la tabla de fechas y usar la medida usando el blog
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.