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

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.

Reply
Anonymous
Not applicable

Combinar filas

Hola - Estoy tratando de combinar filas para "PVColumnName" para cada ProcessOrderNbr. Me gustaría que cada PrcocessOrderNbr tuviera "Fail" y el comentario fallido en la misma columna. He probado el método donde se agrupa por tabla y estoy recibiendo un error cuando intento hacerlo de esa manera. ¿Alguna idea?

Quiero que mi mesa se vea así, pero con el coment Fail y Failed combinado.

Gracias en Avanzado! - Rachel

2021-01-07_15h10_30.png

2021-01-07_15h02_07.png

2021-01-07_15h06_30.png

1 ACCEPTED SOLUTION
v-eqin-msft
Community Support
Community Support

No @a9c4vzz ,

Según mi entendimiento, quieres combinar los valores de cada categoría, ¿verdad?

Lo hice de dos maneras, se podría echar un vistazo al archivo pbix aquí.

1. Utilice la siguiente fórmula para crear una nueva tabla:

Table 2 =
VAR _t =
    SUMMARIZECOLUMNS ( 'Table'[ProcessOrderNbr], 'Table'[PVColumnName] )
VAR _t1 =
    DISTINCT (
        SELECTCOLUMNS (
            ADDCOLUMNS (
                _t,
                "a",
                    CONCATENATEX (
                        FILTER (
                            _t,
                            [PVColumnName] <> "Fail"
                                && [ProcessOrderNbr] = EARLIER ( [ProcessOrderNbr] )
                        ),
                        [PVColumnName],
                        ""
                    )
            ),
            "Pro", [ProcessOrderNbr],
            "PVC", [a]
        )
    )
VAR _t2 =
    DISTINCT ( SELECTCOLUMNS ( _t, "Pro", [ProcessOrderNbr], "PVC", "Fail" ) )
RETURN
    UNION ( _t1, _t2 )

2. En Power Query:

  • Nueva tabla1: Duplicar la tabla original-->Seleccionar columnas-->Filtro PVC "Error"-->Eliminar duplicado:

1.11.3.1.gif

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjYwNrMwM1bSUTIAARdTJ4sQA1Mg1y0xM0cpVod4FaaYKkL1jc0cdYCkhaOClYJTqJOTjyslOiwNYDpMjD0sTAyMMFxBhAozTBWhugYWjjoKobqGBkDLdQ0NHQmpNzQGKzQBk6aOeiDHOroo+DhGuQYp+DoGeSvFxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [id = _t, ProcessOrderNbr = _t, PVColumnName = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"id", Int64.Type}, {"ProcessOrderNbr", type text}, {"PVColumnName", type text}}),
    #"Removed Other Columns" = Table.SelectColumns(#"Changed Type",{"ProcessOrderNbr", "PVColumnName"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Other Columns", each ([PVColumnName] = "Fail")),
    #"Removed Duplicates" = Table.Distinct(#"Filtered Rows")
in
    #"Removed Duplicates"

  • Nueva tabla2: Duplicar la tabla original-->Seleccionar columnas-->Filtro PVC<>"Fail"-->Then as @Ashish_Mathur suggested, use Text.Combine() para agrupar filas.

1.11.3.2.gif

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjYwNrMwM1bSUTIAARdTJ4sQA1Mg1y0xM0cpVod4FaaYKkL1jc0cdYCkhaOClYJTqJOTjyslOiwNYDpMjD0sTAyMMFxBhAozTBWhugYWjjoKobqGBkDLdQ0NHQmpNzQGKzQBk6aOeiDHOroo+DhGuQYp+DoGeSvFxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [id = _t, ProcessOrderNbr = _t, PVColumnName = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"id", Int64.Type}, {"ProcessOrderNbr", type text}, {"PVColumnName", type text}}),
    #"Removed Other Columns" = Table.SelectColumns(#"Changed Type",{"ProcessOrderNbr", "PVColumnName"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Other Columns", each [PVColumnName] <> "Fail"),
    #"Grouped Rows" = Table.Group( #"Filtered Rows", {"ProcessOrderNbr"}, {{"PVColumnName", each Text.Combine(List.Distinct([PVColumnName]), ", "), type text}})
in
    #"Grouped Rows"

  • Por fin, anexe estas dos nuevas tablas.

La salida final se muestra a continuación:

1.11.3.3.PNG

Saludos
Eyelyn Qin
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

View solution in original post

5 REPLIES 5
v-eqin-msft
Community Support
Community Support

No @a9c4vzz ,

Según mi entendimiento, quieres combinar los valores de cada categoría, ¿verdad?

Lo hice de dos maneras, se podría echar un vistazo al archivo pbix aquí.

1. Utilice la siguiente fórmula para crear una nueva tabla:

Table 2 =
VAR _t =
    SUMMARIZECOLUMNS ( 'Table'[ProcessOrderNbr], 'Table'[PVColumnName] )
VAR _t1 =
    DISTINCT (
        SELECTCOLUMNS (
            ADDCOLUMNS (
                _t,
                "a",
                    CONCATENATEX (
                        FILTER (
                            _t,
                            [PVColumnName] <> "Fail"
                                && [ProcessOrderNbr] = EARLIER ( [ProcessOrderNbr] )
                        ),
                        [PVColumnName],
                        ""
                    )
            ),
            "Pro", [ProcessOrderNbr],
            "PVC", [a]
        )
    )
VAR _t2 =
    DISTINCT ( SELECTCOLUMNS ( _t, "Pro", [ProcessOrderNbr], "PVC", "Fail" ) )
RETURN
    UNION ( _t1, _t2 )

2. En Power Query:

  • Nueva tabla1: Duplicar la tabla original-->Seleccionar columnas-->Filtro PVC "Error"-->Eliminar duplicado:

1.11.3.1.gif

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjYwNrMwM1bSUTIAARdTJ4sQA1Mg1y0xM0cpVod4FaaYKkL1jc0cdYCkhaOClYJTqJOTjyslOiwNYDpMjD0sTAyMMFxBhAozTBWhugYWjjoKobqGBkDLdQ0NHQmpNzQGKzQBk6aOeiDHOroo+DhGuQYp+DoGeSvFxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [id = _t, ProcessOrderNbr = _t, PVColumnName = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"id", Int64.Type}, {"ProcessOrderNbr", type text}, {"PVColumnName", type text}}),
    #"Removed Other Columns" = Table.SelectColumns(#"Changed Type",{"ProcessOrderNbr", "PVColumnName"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Other Columns", each ([PVColumnName] = "Fail")),
    #"Removed Duplicates" = Table.Distinct(#"Filtered Rows")
in
    #"Removed Duplicates"

  • Nueva tabla2: Duplicar la tabla original-->Seleccionar columnas-->Filtro PVC<>"Fail"-->Then as @Ashish_Mathur suggested, use Text.Combine() para agrupar filas.

1.11.3.2.gif

let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjYwNrMwM1bSUTIAARdTJ4sQA1Mg1y0xM0cpVod4FaaYKkL1jc0cdYCkhaOClYJTqJOTjyslOiwNYDpMjD0sTAyMMFxBhAozTBWhugYWjjoKobqGBkDLdQ0NHQmpNzQGKzQBk6aOeiDHOroo+DhGuQYp+DoGeSvFxgIA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [id = _t, ProcessOrderNbr = _t, PVColumnName = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"id", Int64.Type}, {"ProcessOrderNbr", type text}, {"PVColumnName", type text}}),
    #"Removed Other Columns" = Table.SelectColumns(#"Changed Type",{"ProcessOrderNbr", "PVColumnName"}),
    #"Filtered Rows" = Table.SelectRows(#"Removed Other Columns", each [PVColumnName] <> "Fail"),
    #"Grouped Rows" = Table.Group( #"Filtered Rows", {"ProcessOrderNbr"}, {{"PVColumnName", each Text.Combine(List.Distinct([PVColumnName]), ", "), type text}})
in
    #"Grouped Rows"

  • Por fin, anexe estas dos nuevas tablas.

La salida final se muestra a continuación:

1.11.3.3.PNG

Saludos
Eyelyn Qin
Si este post ayuda, entonces considera Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

charliej31_0-1653052832332.png

Quiero crear una nueva columna con el valor de la fila 1 "Glasgow" que combina los valores de Glasgow Norte y Glasgow Sur y renombra la fila uno como Glasgow. En la fila 1, recibo un error al sumar los valores porque se espera un número, no un texto. ¿Hay alguna manera de agregar los valores numéricos y cambiar el nombre de los campos de texto?

Ashish_Mathur
Super User
Super User

Hola

¿Desea ver solo 2 filas: una para cada ProcessOrderNbr? Comparte el enlace desde donde puedo descargar tu archivo PBI.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
Anonymous
Not applicable

No, solo quiero ver una fila para cada número de proceso. La fila debe tener Fail y el comentario en la misma celda. No puedo compartir el archivo porque es información confidencial.

Hola

Este código M funciona

let
    Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
    #"Grouped Rows" = Table.Group(Source, {"Process OrderNbr"}, {{"All names", each Text.Combine(List.Distinct([PVColumnName]), ", "), type text}}),
    Joined = Table.Join(Source, "Process OrderNbr", #"Grouped Rows", "Process OrderNbr"),
    #"Removed Columns" = Table.RemoveColumns(Joined,{"PVColumnName"}),
    #"Removed Duplicates" = Table.Distinct(#"Removed Columns")
in
    #"Removed Duplicates"

Espero que esto ayude.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

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.