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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Syndicate_Admin
Administrator
Administrator

Tratar con datos concatenados en DAX

Hola a todos,

Tengo un conjunto de datos extraño y un control muy limitado sobre él, es decir, no puedo transformar datos en Power Query (no pregunte).

Los datos básicamente se parecen a la tabla siguiente y necesito poder contar la SUMA de la columna 2 por cualquier identificador en la columna 1 o una combinación de ellos.

La lógica no está establecida en piedra, por lo que los usuarios necesitan un grado de control sobre cómo cortar los datos. Por ejemplo, es posible que algunos necesiten conocer la SUMA de todas las instancias de 1-UEVLP independientemente de otros identificadores, pero otros solo necesitarán ese identificador; enjuague y repita para cada ID de la lista.

Los identificadores pueden venir en cualquier orden y puede haber uno o más en cada registro. Tengo una lista de todos los identificadores posibles en este momento, pero me gustaría que fuera dinámica en caso de que aparecieran otras nuevas en el futuro.

Pensé que era bastante bueno con DAX a estas alturas, pero ni siquiera sé por dónde empezar. Tendré que construir algún tipo de tablas temporales que resuman los valores, supongo?

¿Alguna idea?

1-UEVLP,a090001,a092002,a095001,a095003325716
1-UEVLP,a090001,a092002,a095001,a101001306857
a016001,a090002,a095002,a095003,a1010011171551
1-UEVLP,a016001,a090001,a090002,a092002,a0950011507506
1-UEVLP,a016001,a090001,a090002,a095001,a0950021607063
1-UEVLP,a016001,a090001,a090002,a095001,a0950031575770
1-UEVLP,a016001,a090001,a090002,a095001,a1000021547156
1-UEVLP,a016001,a090001,a090002,a095001,a1010011534487
1-UEVLP,a016001,a090001,a090002,a092002,a095001,a0950021650842
1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

@MightyMicrobe,

Esta solución utiliza el patrón proporcionado por Chris Webb. Envolví el patrón base en GENERATE, para iterar cada fila de la tabla.

https://blog.crossjoin.co.uk/2018/05/16/a-new-approach-to-handling-ssrs-multi-valued-parameters-in-d...

1. Cree una columna calculada para reemplazar la coma con la barra vertical (barra vertical). El símbolo de canalización es el delimitador de la función PATHLENGTH.

ID Pipe = 
SUBSTITUTE ( Table1[ID Raw], ",", "|" )

DataInsights_0-1628696006106.png

2. Crear tabla calculada:

Table2 = 
GENERATE (
    SUMMARIZE ( Table1, Table1[ID Pipe], Table1[Amount] ),
    VAR vID = Table1[ID Pipe]
    VAR vIDCount =
        PATHLENGTH ( vID )
    VAR vNumberTable =
        GENERATESERIES ( 1, vIDCount, 1 )
    VAR vIDTable =
        GENERATE (
            vNumberTable,
            VAR CurrentKey = [Value] RETURN ROW ( "@ID", PATHITEM ( vID, CurrentKey ) )
        )
    VAR vResult =
        SELECTCOLUMNS ( vIDTable, "ID", [@ID] )
    RETURN
        vResult
)

DataInsights_2-1628696179770.png

View solution in original post

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

@MightyMicrobe,

Esta solución utiliza el patrón proporcionado por Chris Webb. Envolví el patrón base en GENERATE, para iterar cada fila de la tabla.

https://blog.crossjoin.co.uk/2018/05/16/a-new-approach-to-handling-ssrs-multi-valued-parameters-in-d...

1. Cree una columna calculada para reemplazar la coma con la barra vertical (barra vertical). El símbolo de canalización es el delimitador de la función PATHLENGTH.

ID Pipe = 
SUBSTITUTE ( Table1[ID Raw], ",", "|" )

DataInsights_0-1628696006106.png

2. Crear tabla calculada:

Table2 = 
GENERATE (
    SUMMARIZE ( Table1, Table1[ID Pipe], Table1[Amount] ),
    VAR vID = Table1[ID Pipe]
    VAR vIDCount =
        PATHLENGTH ( vID )
    VAR vNumberTable =
        GENERATESERIES ( 1, vIDCount, 1 )
    VAR vIDTable =
        GENERATE (
            vNumberTable,
            VAR CurrentKey = [Value] RETURN ROW ( "@ID", PATHITEM ( vID, CurrentKey ) )
        )
    VAR vResult =
        SELECTCOLUMNS ( vIDTable, "ID", [@ID] )
    RETURN
        vResult
)

DataInsights_2-1628696179770.png

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.