Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Icon for Administrator rankAdministrator
1 year ago

Pivot_unpivot

Por favor, ayúdeme a convertir la primera tabla en la segunda tabla en Power BI.

Cuadro 1

Valor del objetoFechaUsuarioNombre del campoNuevo valor
123430.09.2024EX011111FRGZUX
123430.09.2024EX011111FRGZUXX
123415.10.2024ZT013201FRGZUXXX
123429.10.2024I0172215FRGKEG
123429.10.2024I0172215FRGZUXXXX
234530.06.2024ZT010104FRGZU
234530.06.2024ZT010104FRGKEB
234501.07.2024ZT010104FRGZUX
234501.07.2024ZT010104FRGKEG
234501.07.2024ZT010104FRGZUXX
345615.02.2024ZT012213FRGZU
345615.02.2024ZT012213FRGKEB
345615.02.2024ZT012213FRGKEG
345615.02.2024ZT012213FRGZUX

Tabla 2

Valor del objetoDía 1Usuario 1Nombre de campo 1Nuevo Valor 1Fecha 2Usuario 2Nombre del campo 2Nuevo Valor 2Día 3Usuario 3Nombre del campo 3Nuevo Valor 3Día 4Usuario 4Nombre del campo 4Nuevo Valor 4Día 5Usuario 5Nombre del campo 5Nuevo Valor 5
123430.09.2024EX011111FRGZUX30.09.2024EX011111FRGZUXX15.10.2024ZT013201FRGZUXXX29.10.2024I0172215FRGKEG29.10.2024I0172215FRGZUXXXX
234530.06.2024ZT010104FRGZU 30.06.2024ZT010104FRGKEB01.07.2024ZT010104FRGZUX01.07.2024ZT010104FRGKEG01.07.2024ZT010104FRGZUXX
345615.02.2024ZT012213FRGZU 15.02.2024ZT012213FRGKEB15.02.2024ZT012213FRGKEG15.02.2024ZT012213FRGZUX

10 Replies

  • @BYonRo04 Si desea esto en un objeto visual, es posible que pueda usar un objeto visual Matrix. De lo contrario, ¿desea hacerlo en Power Query o DAX? Por último, si lo desea como una tabla real en su modelo, definitivamente no es un diseño de tabla óptimo para Power BI.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Desafortunadamente, tenemos que adoptar otra solución porque para la consulta de pivote, Power BI cargó aproximadamente 30 GB y tuve que detenerlo porque no terminó de cargar.

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Icon for Administrator rankAdministrator

        Hell0 @BYonRo04 ,

        Si el tamaño del conjunto de datos es grande, considere la posibilidad de usar el modo DirectQuery o un modelo compuesto para administrar el rendimiento y el uso de memoria de forma eficaz.

        DirectQuery: mantiene los datos en el origen, lo que reduce el tamaño del archivo de Power BI.

        Modelo compuesto: combina DirectQuery para tablas de hechos grandes y el modo de importación para tablas de dimensiones más pequeñas.

        Como enfoque alternativo, utilice informes paginados cuando:

        Necesita informes detallados, tabulares o fáciles de exportar.

        Desea controlar grandes conjuntos de datos de forma eficiente sin cargar todo en la memoria.


        Gracias.

  • Hola @BYonRo04 ,
    Para convertir la tabla 1 en la tabla 2 en Power BI, deberá usar la funcionalidad de pivote y agrupación en Power Query. El objetivo es transformar varias filas por "Valor de objeto" en una sola fila, con cada registro relacionado distribuido en nuevas columnas. En Power Query, comience por cargar los datos y asegurarse de que estén ordenados por "Valor de objeto" y "Fecha" (o por el orden de fila original si es necesario).

    A continuación, agrupe la tabla por "Valor del objeto" y utilice la opción "Todas las filas" para conservar los registros detallados. Después de agrupar, agregue una columna de índice dentro de cada tabla agrupada para numerar las entradas (1, 2, 3, etc.) y, a continuación, expanda las filas y dinamice en función de este índice, transformando cada fila en su propio conjunto de columnas (Fecha 1, Usuario 1, Nombre de campo 1, Nuevo valor 1, etc.). Por último, cambie el nombre de las columnas según corresponda. Este enfoque aplana eficazmente el conjunto de datos para que cada objeto tenga todos sus cambios relacionados mostrados en una sola fila, al igual que el formato de la Tabla 2.

  • Hola @BYonRo04 ,

    ¿Puedo preguntarle si ha resuelto este problema? Si es así, marque la respuesta útil y acéptela como la solución. Esto será útil para que otros miembros de la comunidad que tengan problemas similares lo resuelvan más rápido.

    Gracias.

  • Hola @BYonRo04,

    ¿Se ha resuelto el problema o necesita más información? Sus comentarios son valiosos para nosotros. Si la solución fue efectiva, márcala como "Solución aceptada" para ayudar a otros miembros de la comunidad que experimenten el mismo problema.

    Un saludo,

    Prasanna kumar

  • Hola @BYonRo04,

    Solo un amable recordatorio: ¿se ha resuelto su problema? Si es así, le agradeceríamos que marcara la solución que funcionó como Solución aceptada, o no dude en compartir la suya si encuentra una solución diferente.

    Esto no solo cierra el ciclo de su consulta, sino que también ayuda a otros miembros de la comunidad a resolver problemas similares más rápido.

    ¡Gracias por su tiempo y comentarios!

    Mejor

    Prasanna Kumar

  • Hola

    Este código M funciona

    let
        Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
        #"Grouped Rows" = Table.Group(Source, {"Object Value"}, {{"Count", each Table.AddIndexColumn(_,"Index",1)}}),
        #"Expanded Count" = Table.ExpandTableColumn(#"Grouped Rows", "Count", {"Date", "User", "Field Name", "New Value", "Index"}, {"Date", "User", "Field Name", "New Value", "Index"}),
        #"Unpivoted Other Columns" = Table.UnpivotOtherColumns(#"Expanded Count", {"Object Value", "Index"}, "Attribute", "Value"),
        #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Unpivoted Other Columns", {{"Index", type text}}, "en-IN"),{"Attribute", "Index"},Combiner.CombineTextByDelimiter(" ", QuoteStyle.None),"Merged"),
        #"Pivoted Column" = Table.Pivot(#"Merged Columns", List.Distinct(#"Merged Columns"[Merged]), "Merged", "Value")
    in
        #"Pivoted Column"

    Espero que esto ayude.

    • Syndicate_Admin's avatar
      Syndicate_Admin
      Icon for Administrator rankAdministrator

      Muchas gracias, Mathur.

      El código M funciona muy rápido con un origen de datos con más de 1000 filas.