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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Mover columnas a una columna

en la vista de tabla, tengo una tabla con columnas de diferentes tipos de tareas, fecha de vencimiento de tareas y nombre asignado a la tarea. La fuente de datos es una hoja de cálculo de Excel. por ejemplo, de diseño.

NombreTarea 1Tarea 1 dueDate Tarea 2 Tarea 2 Fecha de vencimiento Tarea 3Tarea 3 Fecha de vencimiento
ATarea 117/05/2024Tarea 221/07/2024 Tarea 310/10/2024
BTarea 124/07/2024Tarea 220/08/2024 Tarea 311/11/2024
CTarea 1306/2024Tarea 24/09/2024 Tarea 315/09/2024

En el caso de los requisitos de informe, a los usuarios les gustaría filtrar por tipos de tareas y la próxima fecha de vencimiento de una tarea. Lo que significa que el diseño es mover todas las columnas de diferentes tareas a una columna. (puede crear una nueva tabla), por ejemplo, el diseño

Tipo de tareaNombreFecha de vencimiento de la tarea
Tarea 1A17/05/2024
Tarea 1B24/07/2024
Tarea 1C306/2024
Tarea 2A21/07/2024
Tarea 2B20/08/2024
Tarea 2C4/09/2024
Tarea 3A10/10/2024
Tarea 3B11/11/2024
Tarea 3C15/09/2024

Lo ideal es crear una nueva tabla en TableView. ¿Cómo puedo hacer esto en powerbi?

EL AMOR ES

14 REPLIES 14
Syndicate_Admin
Administrator
Administrator

@Ashish_Mathur espero que esto quede más claro.

diseño original de la fuente de datos en Excel.

Un total de 13 columnas/campos de tareas diferentes

Nombre Tarea 1 Tarea 1 dueDate Tarea 2 Tarea 2 Fecha de vencimiento Tarea 3 Tarea 3 Fecha de vencimiento Tarea 13Tarea 13 Fecha de vencimiento Departamento Equipo Categoría 1 Categoría 2 Comentarios
ATarea 117/05/2024Tarea 221/07/2024 Tarea 3 N/ATarea 1320/08/2024HRReclutamiento
BTarea 124/07/2024Tarea 2N/ATarea 3 N/ATarea 13N/AFinanzasCuentas
CTarea 13/06/2024Tarea 24/09/2024 Tarea 3 15/09/2024Tarea 1311/11/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024

Los requisitos para el informe de PowerBi, todas las tareas deben estar en 1 columna para permitir el filtro, etc.

Nombre del personalTodas las tareasTaskDueDateDepartamentoEquipoCategoría 1Categoría 2Comentarios
ATarea 117/05/2024HRReclutamiento
ATarea 221/07/2024HRReclutamiento
ATarea 3N/AHRReclutamiento
ATarea 1320/08/2024HRReclutamiento
BTarea 124/07/2024FinanzasCuentas
BTarea 2N/AFinanzasCuentas
BTarea 3N/AFinanzasCuentas
BTarea 13N/AFinanzasCuentas
CTarea 13/06/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024
CTarea 24/09/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024
CTarea 315/09/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024
CTarea 1311/11/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024

¿Cómo se puede lograr esto?

Pensé que Advanced Power Query - Unpivot Columns with Multiple Headers, resolvería el problema.

Tia

Syndicate_Admin
Administrator
Administrator

@Ashish_Mathur espero que esto quede más claro.

diseño original de la fuente de datos en Excel.

Un total de 13 columnas/campos de tareas diferentes

Nombre Tarea 1 Tarea 1 dueDate Tarea 2 Tarea 2 Fecha de vencimiento Tarea 3 Tarea 3 Fecha de vencimiento Tarea 13Tarea 13 Fecha de vencimiento Departamento Equipo Categoría 1 Categoría 2 Comentarios
ATarea 117/05/2024Tarea 221/07/2024 Tarea 3 N/ATarea 1320/08/2024HRReclutamiento
BTarea 124/07/2024Tarea 2N/ATarea 3 N/ATarea 13N/AFinanzasCuentas
CTarea 13/06/2024Tarea 24/09/2024 Tarea 3 15/09/2024Tarea 1311/11/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024

Los requisitos para el informe de PowerBi, todas las tareas deben estar en 1 columna para permitir el filtro, etc.

Nombre del personalTodas las tareasTaskDueDateDepartamentoEquipoCategoría 1Categoría 2Comentarios
ATarea 117/05/2024HRReclutamiento
ATarea 221/07/2024HRReclutamiento
ATarea 3N/AHRReclutamiento
ATarea 1320/08/2024HRReclutamiento
BTarea 124/07/2024FinanzasCuentas
BTarea 2N/AFinanzasCuentas
BTarea 3N/AFinanzasCuentas
BTarea 13N/AFinanzasCuentas
CTarea 13/06/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024
CTarea 24/09/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024
CTarea 315/09/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024
CTarea 1311/11/2024MarketingEquipo de redes sociales trabajando en el proyecto B. fecha de finalización en agosto de 2024

¿Cómo se puede lograr esto?

Pensé que Advanced Power Query - Unpivot Columns with Multiple Headers, resolvería el problema.

Tia

Hola

El código M que compartí con ustedes anteriormente debería funcionar bien.

Syndicate_Admin
Administrator
Administrator

@আশিষে_মাথুৰ @VahidDM

El ejemplo proporcionado fue una tabla simple con 3 columnas/campos.


Los datos reales tienen 13 tareas/colmuns diferentes.

Los datos de las columnas de tareas contienen los datos o NA. formateado como campo de texto.

+ Los campos adicionales que se mostrarán junto a una columna son:

trabajador, Todas las tareas, fecha de vencimiento, departamento, equipo, categoría 1, categoría 2 y comentarios


Hay un total de 116 registros.

Si combino manualmente todas las tareas en 1 columna, el total de registros es 1508.


Selecciono las 13 columnas de tareas, anulo la dinamización de las columnas seleccionadas.

Los resultados
Sin embargo, se crean filas mnay en su mayoría filas en blanco.

Solo se muestran 2 registros. Revisé la fuente de datos original. Estos 2 registros son los únicos registros con fecha en TODAS las columnas de tareas.
Las otras filas en blanco, los registros de las columnas de tareas contienen una fecha o N/A

¿Cómo puedo lograrlo?

Actualización --- encontré lo siguiente que puede resolver el problema ..

Anular la dinamización de datos tabulados cruzados con varios encabezados y columnas
https://www.youtube.com/watch?v=O2d5Ec10E1E

Advanced Power Query: anular la dinamización de columnas con varios encabezados
https://www.youtube.com/watch?v=y39LFLLbvk0

EL AMOR ES

Syndicate_Admin
Administrator
Administrator

@VahidDM @আশিষে_মাথুৰ

El ejemplo utilizado fue una tabla simple de 3 campos. o Hacer una prueba y funcionó.

Los datos reales contienen lo siguiente..
13 tareas/campos diferentes. Las columnas con formato de texto.
y contienen valores como la fecha o N/A.


Las 13 tareas diferentes deben estar en una columna.

y 6 campos adicionales necesarios para alinearse y mostrarse junto a las tareas, por ejemplo,


Nombre del personal, Todas las tareas, fecha de vencimiento, departamento, equipo, categoría 1, categoría 2, comentarios

Total de campos 8
Total de registros 116


Selecciono los 13 campos, las diferentes tareas y anulo la dinamización de las columnas.
Los resultados

1.433 filas creadas
sin embargo, solo se muestran 2 registros de datos reales.

Por lo que puedo ver, los 2 registros contienen valores de fecha en las 13 tareas.
Todos los demás registros que no están en la columna 1 contienen una combinación de datos en tipos de tareas, es decir, fecha o N/A

¿Hay alguna manera de reunir TODOS los datos de los 116 registros en la columna 1, lo que dará un total de 1508 registros?

EL AMOR ES

Hola

No puedo entender el diseño de sus datos.

Syndicate_Admin
Administrator
Administrator

Hola

Este código M funciona

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Name"}, "Task type", "Date"),
    #"Added Custom" = Table.AddColumn(#"Unpivoted Other Columns", "Custom", each [#"Task type"]=[Date]),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = false)),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom"}),
    #"Replaced Value" = Table.ReplaceValue(#"Removed Columns","dueDate","",Replacer.ReplaceText,{"Task type"}),
    #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","DueDate","",Replacer.ReplaceText,{"Task type"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Replaced Value1",{{"Date", type date}})
in
    #"Changed Type"

Espero que esto ayude.

Ashish_Mathur_0-1716086919886.png

Syndicate_Admin
Administrator
Administrator

Hola

Este código M funciona

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(Source, {"Name"}, "Task type", "Date"),
    #"Added Custom" = Table.AddColumn(#"Unpivoted Other Columns", "Custom", each [#"Task type"]=[Date]),
    #"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = false)),
    #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom"}),
    #"Replaced Value" = Table.ReplaceValue(#"Removed Columns","dueDate","",Replacer.ReplaceText,{"Task type"}),
    #"Replaced Value1" = Table.ReplaceValue(#"Replaced Value","DueDate","",Replacer.ReplaceText,{"Task type"}),
    #"Changed Type" = Table.TransformColumnTypes(#"Replaced Value1",{{"Date", type date}})
in
    #"Changed Type"

Espero que esto ayude.

Ashish_Mathur_0-1716086919886.png

Syndicate_Admin
Administrator
Administrator

Gracias a todos, eso es genial.

Hazme saber si estoy en el camino correcto..

La mesa original quiero que no se toque.

En Editar consulta, en la tabla original, seleccioné Referencia. Esto crea una tabla de referencia. He eliminado las columnas que ya no son necesarias. Me di cuenta de que las columnas calculadas creadas en la tabla original no están disponibles en la tabla de referencia. ¿Significa eso que en la vista de tabla, necesito agregar las columnas calculadas? Una vez completado. en la tabla de referencia, anularé la dinamización de las columnas

Puede aplicar todos los cambios de la tabla en Power Query.

Descargue mi archivo de muestra y siga los pasos

saludos

Vahid

Syndicate_Admin
Administrator
Administrator

Hola @dd88 ,
Creé un archivo Pbix de muestra. Screenshot 2024-05-17 110902.png

Screenshot 2024-05-17 111217.png Los pasos son:

let
    Source = Excel.Workbook(File.Contents("C:\Users\**bleep**al Clinic(Rutvi)\Downloads\Book1.xlsx"), null, true),
    Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
    #"Changed Type" = Table.TransformColumnTypes(Sheet1_Sheet,{{"Column1", type text}, {"Column2", type text}, {"Column3", type any}, {"Column4", type text}, {"Column5", type any}, {"Column6", type text}, {"Column7", type any}}),
    #"Promoted Headers" = Table.PromoteHeaders(#"Changed Type", [PromoteAllScalars=true]),
    #"Changed Type1" = Table.TransformColumnTypes(#"Promoted Headers",{{"Column1", type text}, {"Column2", type text}, {"Column3", type any}, {"Column4", type text}, {"Column5", type any}, {"Column6", type text}, {"Column7", type any}}),
    #"Promoted Headers1" = Table.PromoteHeaders(#"Changed Type1", [PromoteAllScalars=true]),
    #"Changed Type2" = Table.TransformColumnTypes(#"Promoted Headers1",{{"Name    ", type text}, {"Task 1    ", type text}, {"Task 1 dueDate    ", type any}, {"Task 2     ", type text}, {"Task 2 DueDate    ", type date}, {" Task 3     ", type text}, {"Task 3 DueDate   ", type date}}),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(#"Changed Type2", {"Name    "}, "Attribute", "Value"),
    #"Filtered Rows" = Table.SelectRows(#"Unpivoted Columns", each ([Attribute] = "Task 1 dueDate    " or [Attribute] = "Task 2 DueDate    " or [Attribute] = "Task 3 DueDate   ")),
    #"Split Column by Position" = Table.SplitColumn(#"Filtered Rows", "Attribute", Splitter.SplitTextByRepeatedLengths(7), {"Attribute.1", "Attribute.2", "Attribute.3"}),
    #"Renamed Columns" = Table.RenameColumns(#"Split Column by Position",{{"Attribute.1", "Task"}, {"Value", "Due Date"}}),
    #"Removed Columns" = Table.RemoveColumns(#"Renamed Columns",{"Attribute.2", "Attribute.3"})
in
    #"Removed Columns"

Screenshot 2024-05-17 111226.png

Si hay alguna publicación que ayude, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Si no entiendo sus necesidades o aún tiene problemas al respecto, no dude en hacérnoslo saber. ¡Muchas gracias!

Syndicate_Admin
Administrator
Administrator

Hola @dd88

Puede usar esto en Power Query, simplemente cambie la fuente en el código:

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUQpJLM5WMAQyDM31DUz1jQyMTGCiRkCGkaG+gTmKqDFIrYE+EIFFY3WilZyQzTEyQdcBNsdA38AC0xxDfSCCm+OMbI4xUIcZhjlAwy0xjTGFi8bGAgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, #"Task 1" = _t, #"Task 1 DueDate " = _t, #"Task 2" = _t, #"Task 2 DueDate " = _t, #"Task 3" = _t, #"Task 3 DueDate " = _t]),
    #"Unpivoted Columns" = Table.UnpivotOtherColumns(Source, {"Name"}, "Task Type", "Task due date"),
    #"Filtered Rows" = Table.SelectRows(#"Unpivoted Columns", each Text.Contains([Task Type], "DueD")),
    #"Replaced Value" = Table.ReplaceValue(#"Filtered Rows"," DueDate ","",Replacer.ReplaceText,{"Task Type"}),
    #"Sorted Rows" = Table.Sort(#"Replaced Value",{{"Task Type", Order.Ascending}})
in
    #"Sorted Rows"

Archivo de muestra adjunto.

Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.

¡Agradezco sus felicitaciones!

LinkedIn | Twitter | Blog | YouTube (en inglés)

Gracias @VahidDM el archivo de muestra es genial ..

Syndicate_Admin
Administrator
Administrator

En Power Query, puede seleccionar la columna Nombre y, a continuación, anular la dinamización de otras columnas.

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.