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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Mohs
Helper I
Helper I

Cambiar filas a columnas

Hola a todos

Soy relativamente nuevo en Power BI y estoy tratando de encontrar una solución que me permita mostrar una tabla donde cada línea está agrupada por un número de transacción único y donde los productos se enumeran como columnas en lugar de filas, para habilitar una vista más sencilla de los datos.

A continuación se muestra el aspecto de mis datos:
1.PNG

Hay un máximo de 4 artículos por transacción. La tabla de datos etiqueta cada fila entre 1-4.

Quiero que mi resultado final se vea algo como esto, con 4 columnas que mostrarán el nombre del producto (de los cuales podría haber cientos) y la cantidad:

2.PNG

Realmente apreciaría cualquier sugerencia sobre cómo obtener los resultados deseados! Gracias de antemano.

Mo



1 ACCEPTED SOLUTION

@Mohs - Echa un vistazo a mi enlace de archivo de nuevo, segunda pestaña. Creé 1 medida que es una forula SUM simple. Luego lo puse en una Matriz, y puse el número de línea en las columnas, todo lo demás en filas, y me des hice de los subtotales, excepto por la línea Transction, que pensé que podría ser útil, pero también puedes deshacerte de eso. A continuación, expandió todas las descripciones de fila y eliminó el diseño escalonado predeterminado.

edhans_1-1597080663394.png

Esto se expandirá automáticamente para cada línea de pedido, por lo que si llega una transacción con 6 partidas individuales, tendrá 6 columnas de datos.

Podría poner los nombres de los productos en las columnas, pero tiene 13 productos únicos, por lo que se convierte en una tabla muy amplia para mostrar los 13, y sospecho que sus datos reales tienen productos aún más reales.

Puede combinar este proceso con el @MFelix de medida proporcionado si no desea cantidades reales, pero la concatenación del nombre del producto y el total en la parte Valores. Hice una versión aproximada de eso en la pestaña 3.


Puede expandir previamente toda la matriz para que los usuarios no tengan que hacerlo, y eliminar los botones de expansión +/- si lo desea, también se muestra en la pestaña 3



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

View solution in original post

13 REPLIES 13
edhans
Super User
Super User

@Mohs, el código @mhossain proporcionado funcionará, pero esto no es una buena práctica para hacer. Tienes una buena mesa normalizada y la estás desnormalizando. Usted potencialmente tendrá docenas, cientos, o incluso miles de coluimns con el tiempo.

En su lugar, debe crear una tabla DIM. Usted está tratando de hacer de su tabla FACT su tabla DIM también.

  1. Cree una referencia a la tabla principal
  2. Seleccione la columna Transacciones y elimine otras columnas
  3. Elimine duplicados de la columna de transacción.
  4. Esto se convierte en tu Dimensión

Unique Values.gif

Háganos saber cuál es su objetivo final : la salida visual o de informe. Podemos ayudarte a llegar allí. Sin embargo, la desnorización de los datos hará que el DAX sea muy difícil más adelante y no será dinámico a medida que entren nuevos tipos de transacciones. Se adhieren a un esquema de estrella, que tiene una tabla FACT normalizada.

Orientación de Microsoft sobre la importancia del esquema star



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Hola @edhans ,

He adjuntado una tabla de datos de ejemplo para que miites con lo que estoy trabajando.

Tenga en cuenta que es importante, me gusta cada ID de transacción en una sola fila (algo así como mi maqueta en mi publicación original), con 4 columnas de marcador de posición de producto. Los productos reales contenidos en esas columnas son más de 4 , pero es probable que no haya (nunca digas nunca aunque) más de 4 productos por transacción.Datos: Datos de muestra

Espero que eso ayude a explicar lo que busco. ¡Gracias de nuevo!


Muchas gracias @edhans por la respuesta -

Mi objetivo final es crear un objeto visual que muestre un programa de recogida de productos.

El objeto visual debe ser una tabla con las siguientes columnas (de izquierda a derecha): omití algunas de estas columnas en mi publicación original en aras de la simplicidad, pero quiero asegurarme de que puedo mostrar varios datos de cada transacción.

Columna 1 : Fecha y hora de inicio de la carga
Columna 2: Fecha y hora de finalización de la carga del producto
Columna 3: Transacción
Columna 4: Cliente
Columna 5: Destino físico del producto
Columna 6: Producto 1
Columna 7: Producto 2
Columna 8: Producto 3
Columna 9: Producto 4
Columna 10: Instrucciones especiales?notas

Agradecemos su apoyo,
Mohs

Hola @Mohs ,

Puede crear medidas que filtrarán los datos por el tipo de producto. Por ejemplo:

Product A = 
VAR varProductName = "A"
VAR Result = 
CALCULATE(
    SUM('Table'[Qty]),
    'Table'[Product] = varProductName
)
RETURN
    Result

A continuación, simplemente suelte esta medida "Producto A" en una columna de su tabla. Repita para B, C, D, etc.

No tenía muchas de las columnas que deseaba en los datos muestreados (cliente, instrucciones especiales, etc.), pero es probable que se sacudan para estar en la fila correcta para una medida determinada. He creado las medidas del producto A y B y devuelve esto:

edhans_0-1597073122491.png

Pero sus datos todavía están completamente normalizados. De hecho, no hice ninguna transformación en sus datos originales.

edhans_1-1597073168282.png

Adjunto es mi archivo PBIX si desea echar un vistazo. Tenga en cuenta que estoy usando una tabla de fechas, y la fecha en el objeto visual de la tabla es de eso, no de la tabla de datos. Esto le permitirá la inteligencia del tiempo si quieres - vs el mes pasado, el año anterior, lo que sea.

Si necesita más ayuda, proporcione un conjunto representativo de datos en un formato utilizable (no imagen), y exactamente cómo desea que se vea la salida, pero esperemos que esto le ayude a empezar.

Cómo obtener una buena ayuda rápidamente. Ayúdanos a ayudarte.
Cómo obtener respuestas a su pregunta rápidamente
Cómo proporcionar datos de ejemplo en el foro de Power BI



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Hola @edhans

Pensé que las columnas de productos se fijarán a 4, según @Mohs requisito de que máximo sólo 4 ID de transacción para cualquier registro, tal vez me lo perdí, por favor compruebe.

Ese código no se limpió uno sólo para referencia y teniendo en cuenta lo anterior y la salida de datos/informe.

Estoy de acuerdo con usted en el lado de los datos strucutring.

Sí, tienes razón @mhossain - Yo estaba más centrado en "¿por qué esta tabla está siendo desnormalizada?" 😁



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting
MFelix
Super User
Super User

Hola @Mohs ,

Cree una visualización de matriz y un measuare con los siguientes formatos y sintaxis:

Values = MAX('Table'[Product]) & "-" & SUM('Table'[Quantity])

  • Filas:
    • Fecha
    • Transacción
  • Columnas:
    • Secuencia
  • Valores
    • Valores de medida
  • Desactivar diseño escalonado

MFelix_0-1596753127721.png


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



¡Esta es una gran solución!

Una pregunta sin embargo: Me gustaría que mi objeto visual final fuera una tabla y no una matriz, ya que no quiero que los usuarios tengan que trabajar con tener que expandir una tabla usando el icono '+' en la matriz. ¿Tiene alguna sugerencia sobre cómo lograrlo?

Saludos
Mohs


@Mohs - Echa un vistazo a mi enlace de archivo de nuevo, segunda pestaña. Creé 1 medida que es una forula SUM simple. Luego lo puse en una Matriz, y puse el número de línea en las columnas, todo lo demás en filas, y me des hice de los subtotales, excepto por la línea Transction, que pensé que podría ser útil, pero también puedes deshacerte de eso. A continuación, expandió todas las descripciones de fila y eliminó el diseño escalonado predeterminado.

edhans_1-1597080663394.png

Esto se expandirá automáticamente para cada línea de pedido, por lo que si llega una transacción con 6 partidas individuales, tendrá 6 columnas de datos.

Podría poner los nombres de los productos en las columnas, pero tiene 13 productos únicos, por lo que se convierte en una tabla muy amplia para mostrar los 13, y sospecho que sus datos reales tienen productos aún más reales.

Puede combinar este proceso con el @MFelix de medida proporcionado si no desea cantidades reales, pero la concatenación del nombre del producto y el total en la parte Valores. Hice una versión aproximada de eso en la pestaña 3.


Puede expandir previamente toda la matriz para que los usuarios no tengan que hacerlo, y eliminar los botones de expansión +/- si lo desea, también se muestra en la pestaña 3



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

Maravilloso @edhans - apreciar la aclaración, y gracias también @MFelix . Eso funcionó muy bien.

Me alegro de que pudimos resolverlo @Mohs



Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

DAX is for Analysis. Power Query is for Data Modeling


Proud to be a Super User!

MCSA: BI Reporting

@MFelix FYI aquí es un vínculo a un conjunto de datos de ejemplo que imita con qué estoy trabajando. Me gustaría que mi objeto visual final mostrara no sólo los productos 1-4 en una línea, sino también otras columnas (por ejemplo, el nombre del buque, las notas que se asocian con cada ID de transacción.

Datos de muestra

mhossain
Solution Sage
Solution Sage

Hola @Mohs

Ir a powerquery y crear consulta en blanco y pegar a continuación en el editor de avanzada y ver los pasos, esto le proporcionará exactamente lo que desea, hágamelo saber si no está claro.

Dejar
Source á Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSAeNEIDZVitWBiBgBcRJcxAhDjRFWNcZAnIwiYgLEKXARY6g5qSgiIHVpKIgnI4iAjInAyISCwA", BinaryEncoding.Base64), Compression.Deflate)), let _t á ((tipo de texto que acepta valores NULL) meta [Serialized.Text ? true]) en la tabla de tipos [Transaction ? _t, Seuquence ? _t, Product - _t, Qty - _t]),
"Tipo modificado" - Table.TransformColumnTypes(Source,"Transaction", Int64.Type, "Seuquence", Int64.Type, "Producto", tipo text,"Qty", Int64.Type),
"Changed Type1" á Table.TransformColumnTypes(-"Changed Type","Qty", escriba text-),
"Añadido Personalizado" - Table.AddColumn(-"Changed Type1", "Products", each [Product]&[Qty]),
"Columnas eliminadas" - Table.RemoveColumns(-"Added Custom","Product", "Qty"-),
"Changed Type2" á Table.TransformColumnTypes('"Columnas eliminadas",'Seuquence',tipo text'),
"Añadido Custom1" - Table.AddColumn(-"Changed Type2", "prod", each "Poduct" & " "&[Seuquence]),
"Filas agrupadas" - Table.Group(-"Added Custom1", "Transaction" , "combinar", cada Text.Combine([Products],"; "), escriba texto, escriba el texto,
"Dividir columna por delimitador" ? Table.SplitColumn('Filas agrupadas"', 'combinar', Dividir.SplitTextByDelimiter(";", QuoteStyle.Csv), ''combinar.1',', 'combinar.2', 'combinar.3', 'combinar.4''),
"Changed Type3" á Table.TransformColumnTypes('Dividir columna por delimitador",'combinar.1','tipo', ''combinar.2','tipo', '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
"Columnas renombradas" - Table.RenameColumns(-"Changed Type3","combine.1", "Product1"" , "combine.2", "Product2", "combine.3", "Product3", "combine.4", "Product4")
En
"Columnas renombradas"

Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

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.