Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
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:
Id | Etiquetas Tabla 2 |
XXXX1 | Algodón, Fibra |
XXXX2 | Madera |
XXXX3 | Seda, 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:
Id | Etiquetas Tabla 3 |
XXXX1 | Algodón |
XXXX1 | Fibra |
XXXX1 | Fibra |
XXXX1 | Fibra |
XXXX1 | Madera |
XXXX2 | Madera |
XXXX3 | Seda |
XXXX3 | Fibra |
XXXX3 | Algodón |
XXXX4 | Seda |
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],",")
Id | TAGS2 | TAGS3 |
XXXX1 | Algodón, Fibra | Algodón, Fibra, Madera |
XXXX2 | Madera | Madera |
XXXX3 | Seda, Fibra | SILK, 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:
Id | TAGS2 | TAGS3 | ¿Nueva medida? |
XXXX1 | Algodón, Fibra | Algodón, Fibra, Madera | Algodón, Fibra, Madera |
XXXX2 | Madera | Madera | Madera |
XXXX3 | Seda, Fibra | SILK, Fibra, Algodón | SILK, Fibra, Algodón |
XXXX3 | Seda | Seda |
¡Muchas gracias!
Solved! Go to Solution.
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:
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).
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:
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).