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.
Hola a todos,
Tengo una tabla de hojas de horas y me gustaría cortarla para mostrar el tiempo dedicado a las tareas para personas/proyectos seleccionados.
También me gustaría mostrar el tiempo total para un proyecto para todos o personas seleccionadas.
El problema es que la tarea y el identificador de proyecto se repiten en la tabla y el contexto de las tareas proceden de filas anteriores donde se especifica la persona y el proyecto.
Mi pensamiento era si pudiera dividir la tabla cada vez que encontrara la fila que contiene la información de la persona que eliminaría los valores repetidos y tendría tablas únicas.
Todavía soy realmente nuevo en power bi y crear consultas, así que podría estar perdiendo algo obvio.
Gracias por leer, espero que la pregunta sea clara.
Aquí está mi conjunto de datos:
Todos | ProjectID | Taskid | Tipo | Hora |
TODOS LOS PROYECTOS | Total | 9 | ||
Proyecto1 | 2015301 | Proyecto | 5 | |
Task1 | 2015301 | 74709878 | Tarea | 5 |
Proyecto2 | 2348062 | Proyecto | 4 | |
Task2 | 2348062 | 88239468 | Tarea | 4 |
Persona1 | ProjectID | Taskid | Tipo | Hora |
TODOS LOS PROYECTOS | Total | 5 | ||
Proyecto1 | 2015301 | Proyecto | 3 | |
Task1 | 2015301 | 74709878 | Tarea | 3 |
Proyecto2 | 2348062 | Proyecto | 2 | |
Task2 | 2348062 | 88239468 | Tarea | 2 |
Persona2 | ProjectID | Taskid | Tipo | Hora |
TODOS LOS PROYECTOS | Total | 4 | ||
Proyecto1 | 2015301 | Proyecto | 2 | |
Task1 | 2015301 | 74709878 | Tarea | 2 |
Proyecto2 | 2348062 | Proyecto | 2 | |
Task2 | 2348062 | 88239468 | Tarea | 2 |
Solved! Go to Solution.
Hola @tbicim
Puede conectarse al archivo csv mediante el modo improt. Puede transformar el modelo de datos en Power Query Editor.
Mi mesa:
Mi editor avanzado:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("tY+xCoMwFEV/RTI7JC9R41hahxZBad3EQUqG2lZFpeDfNzEipiBksBDI493DTU6eo+gjujGpBXJR2jWVuA/nk5yzsn/qYWxVlj3eAhVujg5x7KTX5BIds5sjA32GZihf8g4nZi4icgGYeBQTTbV6Lydv4tQjJhSwAIc84KpShgs5N4KCKePYh99GtjSaEOdAQ+avGjWZiq5varKPtret7Ri/pNbedNvbrARrcViJwz7izFYcrMXhL+LFFw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}}),
#"Promoted Headers" = Table.PromoteHeaders(#"Changed Type", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"EveryOne", type text}, {"ProjectID", type text}, {"TaskID", type text}, {"Type", type text}, {"Time", type text}}),
#"Removed Top Rows" = Table.Skip(#"Changed Type1",5),
#"Added Conditional Column" = Table.AddColumn(#"Removed Top Rows", "Person", each if Text.Contains([EveryOne], "Person") then [EveryOne] else null),
#"Added Conditional Column1" = Table.AddColumn(#"Added Conditional Column", "P/T", each if Text.Contains([EveryOne], "Project") then [EveryOne] else if Text.Contains([EveryOne], "Task") then [EveryOne] else null),
#"Reordered Columns" = Table.ReorderColumns(#"Added Conditional Column1",{"Person", "P/T", "EveryOne", "ProjectID", "TaskID", "Type", "Time"}),
#"Filled Down" = Table.FillDown(#"Reordered Columns",{"Person"}),
#"Removed Columns" = Table.RemoveColumns(#"Filled Down",{"EveryOne"}),
#"Sorted Rows" = Table.Sort(#"Removed Columns",{{"P/T", Order.Ascending}}),
#"Removed Top Rows1" = Table.Skip(#"Sorted Rows",4),
#"Sorted Rows1" = Table.Sort(#"Removed Top Rows1",{{"Person", Order.Ascending}, {"P/T", Order.Ascending}}),
#"Changed Type2" = Table.TransformColumnTypes(#"Sorted Rows1",{{"Time", Int64.Type}})
in
#"Changed Type2"
Resultado:
Puede descargar el archivo pbix desde este enlace: Dividir tabla siempre que se encuentre un valor de columna
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola @tbicim
Puede mostrar la suma de tiempo por segmentación de datos.
Actualizo su modelo de datos como se muestra a continuación.
Cree un objeto visual de tarjeta por columna Time y cree algunas segmentaciones de datos. Como se muestra a continuación, muestra la suma de tiempo para la tarea person1 y Type .
Si esta respuesta todavía no pudo ayudarle a resolver su problema, por favor muéstreme una captura de pantalla del resultado que desea y puede hacer que sea más fácil para mí entender su requisito.
Puede descargar el archivo pbix desde este enlace: Dividir tabla siempre que se encuentre un valor de columna
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Hola Rico,
Gracias por su respuesta.
Sí, el modelo de datos actualizado sería fácil de trabajar sin embargo, la forma en que se crea el archivo csv es de esa manera y no tengo control sobre las exportaciones.
¿Cómo haría esa actualización en el sistema power bi en lugar de hacerlo manualmente o con un script de línea de comandos?
Gracias
Atún Bicim
Hola @tbicim
Puede conectarse al archivo csv mediante el modo improt. Puede transformar el modelo de datos en Power Query Editor.
Mi mesa:
Mi editor avanzado:
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("tY+xCoMwFEV/RTI7JC9R41hahxZBad3EQUqG2lZFpeDfNzEipiBksBDI493DTU6eo+gjujGpBXJR2jWVuA/nk5yzsn/qYWxVlj3eAhVujg5x7KTX5BIds5sjA32GZihf8g4nZi4icgGYeBQTTbV6Lydv4tQjJhSwAIc84KpShgs5N4KCKePYh99GtjSaEOdAQ+avGjWZiq5varKPtret7Ri/pNbedNvbrARrcViJwz7izFYcrMXhL+LFFw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}, {"Column2", type text}, {"Column3", type text}, {"Column4", type text}, {"Column5", type text}}),
#"Promoted Headers" = Table.PromoteHeaders(#"Changed Type", [PromoteAllScalars=true]),
#"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"EveryOne", type text}, {"ProjectID", type text}, {"TaskID", type text}, {"Type", type text}, {"Time", type text}}),
#"Removed Top Rows" = Table.Skip(#"Changed Type1",5),
#"Added Conditional Column" = Table.AddColumn(#"Removed Top Rows", "Person", each if Text.Contains([EveryOne], "Person") then [EveryOne] else null),
#"Added Conditional Column1" = Table.AddColumn(#"Added Conditional Column", "P/T", each if Text.Contains([EveryOne], "Project") then [EveryOne] else if Text.Contains([EveryOne], "Task") then [EveryOne] else null),
#"Reordered Columns" = Table.ReorderColumns(#"Added Conditional Column1",{"Person", "P/T", "EveryOne", "ProjectID", "TaskID", "Type", "Time"}),
#"Filled Down" = Table.FillDown(#"Reordered Columns",{"Person"}),
#"Removed Columns" = Table.RemoveColumns(#"Filled Down",{"EveryOne"}),
#"Sorted Rows" = Table.Sort(#"Removed Columns",{{"P/T", Order.Ascending}}),
#"Removed Top Rows1" = Table.Skip(#"Sorted Rows",4),
#"Sorted Rows1" = Table.Sort(#"Removed Top Rows1",{{"Person", Order.Ascending}, {"P/T", Order.Ascending}}),
#"Changed Type2" = Table.TransformColumnTypes(#"Sorted Rows1",{{"Time", Int64.Type}})
in
#"Changed Type2"
Resultado:
Puede descargar el archivo pbix desde este enlace: Dividir tabla siempre que se encuentre un valor de columna
Saludos
Rico Zhou
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |