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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Concatenar 2 medidas de texto sin duplicados

Hola

Tengo un informe creado a partir de Salesforce (Productos de Oportunidades y Oportunidades). En cada registro hay algunas etiquetas de texto que necesito combinar con valores únicos para cada identificador de oportunidad.

Es algo como esto

Tabla 1, con identificadores de oportunidades (valores únicos):

Id
XXXX1
XXXX2
XXXX3
XXXX4

Tabla 2, con etiquetas de texto - o valores en blanco - para cada registro de oportunidad:

IdEtiquetas Tabla 2
XXXX1Algodón, Fibra
XXXX2Madera
XXXX3Seda, Fibra
XXXX4

Tabla 3, con etiquetas de texto para cada producto relacionado con la oportunidad, a veces lo mismo que la tabla 2, a veces no:

IdEtiquetas Tabla 3
XXXX1Algodón
XXXX1Fibra
XXXX1Fibra
XXXX1Fibra
XXXX1Madera
XXXX2Madera
XXXX3Seda
XXXX3Fibra
XXXX3Algodón
XXXX4Seda

Así que a He construido un objeto de tabla con 2 medidas y tengo los valores únicos para ambas tablas usando estas fórmulas:

TAGS2 - CONCATENATEX(values(Table 2[Tags Table 2]),Table 2[Tags Table 2],",")

TAGS3 - CONCATENATEX(values(Table 3[Tags Table 3]),Table 3[Tags Table 3],",")

IdTAGS2TAGS3
XXXX1Algodón, FibraAlgodón, Fibra, Madera
XXXX2MaderaMadera
XXXX3Seda, FibraSILK, Fibra, Algodón
XXXX3 Seda

¿Hay alguna manera de que pueda tener una 3a medida con todas las etiquetas de texto combinadas, evitando duplicados? Algo como esto:

IdTAGS2TAGS3¿Nueva medida?
XXXX1Algodón, FibraAlgodón, Fibra, MaderaAlgodón, Fibra, Madera
XXXX2MaderaMaderaMadera
XXXX3Seda, FibraSILK, Fibra, AlgodónSILK, Fibra, Algodón
XXXX3 SedaSeda

¡Muchas gracias!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Un enfoque sería usar "|" en lugar de ", " como separador y, a continuación, trabajar con la función PATHITEM() en DAX.

Otro enfoque sería convertir la cadena de texto en una variable de tabla.

Por cierto, su tabla 1 no es necesaria, y tampoco es su medida TAGS2. ¿A menos que sus datos de muestra no sean representativos?

COLUMNA CALCULADA TAGS2:

TAGS2 = SUBSTITUTE('Table 2'[Tags Table 2],", ","|")

Medidas:

TAGS3 = CONCATENATEX(values('Table 3'[Tags Table 3]),'Table 3'[Tags Table 3],",")

Measure = 
var t3=SUMMARIZE(ADDCOLUMNS(values('Table 3'[Tags Table 3]),"TAG",'Table 3'[Tags Table 3]),[TAG])
var u=UNION(t3,row("TAG",PATHITEM(SELECTEDVALUE('Table 2'[TAGS2]),1)),row("TAG",PATHITEM(SELECTEDVALUE('Table 2'[TAGS2]),2)))
return CONCATENATEX(DISTINCT(FILTER(u,[TAG]<>BLANK())),[TAG],",")

Nota: esto es sólo para la ilustración - usted necesita unirse las otras filas de la trayectoria también si hay más de dos.

Resultado:

lbendlin_1-1613170056629.png

Tenga en cuenta los problemas de calidad de datos alrededor de SILK y la cadena vacía para XXXX4 (lo reemplací por null en la carga de datos).

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

Un enfoque sería usar "|" en lugar de ", " como separador y, a continuación, trabajar con la función PATHITEM() en DAX.

Otro enfoque sería convertir la cadena de texto en una variable de tabla.

Por cierto, su tabla 1 no es necesaria, y tampoco es su medida TAGS2. ¿A menos que sus datos de muestra no sean representativos?

COLUMNA CALCULADA TAGS2:

TAGS2 = SUBSTITUTE('Table 2'[Tags Table 2],", ","|")

Medidas:

TAGS3 = CONCATENATEX(values('Table 3'[Tags Table 3]),'Table 3'[Tags Table 3],",")

Measure = 
var t3=SUMMARIZE(ADDCOLUMNS(values('Table 3'[Tags Table 3]),"TAG",'Table 3'[Tags Table 3]),[TAG])
var u=UNION(t3,row("TAG",PATHITEM(SELECTEDVALUE('Table 2'[TAGS2]),1)),row("TAG",PATHITEM(SELECTEDVALUE('Table 2'[TAGS2]),2)))
return CONCATENATEX(DISTINCT(FILTER(u,[TAG]<>BLANK())),[TAG],",")

Nota: esto es sólo para la ilustración - usted necesita unirse las otras filas de la trayectoria también si hay más de dos.

Resultado:

lbendlin_1-1613170056629.png

Tenga en cuenta los problemas de calidad de datos alrededor de SILK y la cadena vacía para XXXX4 (lo reemplací por null en la carga de datos).

Muchas gracias, @lbendlin !! ¡Eso funcionó como un encanto!

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

Power BI Carousel June 2024

Power BI Monthly Update - June 2024

Check out the June 2024 Power BI update to learn about new features.

RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

Top Solution Authors