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
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
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.