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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Syndicate_Admin
Administrator
Administrator

Ayuda de DAX para valores separados por comas

Hola a todos

Tengo dos tablas como las siguientes. No quiero crear una relación entre ellos.

Tabla 1:

PaísValor
India10
Japón20
África del Sur30
Brasil40

Tabla 2:

LugarPaís
AsiaIndia, Japón
ÁfricaÁfrica del Sur
AméricaBrasil

En el cuadro 2 se ha asignado un mapa de los países a los lugares. Para Asia, India y Japón han sido mapeados con un separador de comas. Ahora necesito usar una medida DAX para calcular la suma del valor (Tabla 1) basado en los lugares. El resultado debe ser el siguiente:

LugarValor
Asia30
África30
América40

Traté de crear una medida como la siguiente, pero no pude encontrar una respuesta. Por favor, ayuda en la creación de una medida DAX para esto.

krishnanvs_0-1672047709423.png

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

Mahesh0016_0-1672053359445.png

@krishnanvs Si esta publicación ayuda, considere aceptar como solución para ayudar a otros miembros a encontrarla más rápidamente.

Syndicate_Admin
Administrator
Administrator

@krishnanvs -Has escrito el DAX Un poco correcto, solo necesitas hacer la corrección en que es esto:

Suma =
Dónde getPlace=VALOR SELECCIONADO(«Cuadro 2»[Lugar])
Dónde getCountry=CONCATENATEX(VALORES(«Cuadro 2»[País]),«Cuadro 2»[País],",")
Dónde getValue=CALCULAR(SUMA(«Cuadro 1»[Valor]),CONTAINSSTRING(getCountry,«Cuadro 1»[País]))
devolución
getValue
Entonces usted puede lograr su objetivo He probado este.Por favor, consulte la captura de pantalla a continuación
BIHelper_0-1672051594833.png

Márquelo como solución si cumple con sus requisitos
¡Gracias!

Syndicate_Admin
Administrator
Administrator

Hola

Por favor, compruebe la imagen de abajo y el archivo pbix adjunto.

Jihwan_Kim_0-1672051068500.png

Value measure: =
SUMX (
    DISTINCT ( 'Table 2'[Place] ),
    CALCULATE (
        SUMX (
            FILTER (
                GENERATE (
                    'Table 1',
                    ADDCOLUMNS (
                        ADDCOLUMNS ( 'Table 2', "@path", SUBSTITUTE ( 'Table 2'[Country], ", ", "|" ) ),
                        "@pathcontains", PATHCONTAINS ( [@path], 'Table 1'[Country] )
                    )
                ),
                [@pathcontains] = TRUE ()
                    && 'Table 2'[Place] = MAX ( 'Table 2'[Place] )
            ),
            'Table 1'[Value]
        )
    )
)
Syndicate_Admin
Administrator
Administrator

@krishnanvs

Como ha sugerido amitchandak, en ocasiones como esta, siempre es recomendable dividir la columna en filas en Power Query.

Si sus datos no son grandes e insiste en hacer con DAX, intentaría

1) Crea una medida como esta:

ValueSum = 
VAR _country = MAX(Table2[Country])
RETURN
CALCULATE(
    SUM(Table1[Value]),
    FILTER(
        ALL(Table1),
        CONTAINSSTRING(_country, Table1[Country])    
    )
)

2) trazar la medida y la columna de lugar como un objeto visual de tabla.

Lo intenté y funcionó así:

FreemanZ_0-1672050133084.png

Syndicate_Admin
Administrator
Administrator

@krishnanvs , En la tabla 2, utilice dividir por delimitadores en filas y unir con la primera tabla

https://www.tutorialgateway.org/how-to-split-columns-in-power-bi/

Columna dividida de Power Query , Dividir columna por delimitador: https://youtu.be/FyO9Vmhcfag

Refiera si es necesario

Power BI: segmentación de datos de elementos de texto para filtrar o buscar texto: https://youtu.be/MKKWeOqFG4c

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors