Hola
Estoy trabajando en un modelo en el que podría ver la similitud entre los productos a través de la estructura del producto.
La estructura del producto tiene este aspecto:
TopProduct | ComponentPart |
1234 | ABC1 |
1234 | BCD2 |
1234 | CDE3 |
1234A | ABC1 |
1234A | EFG1 |
Me gustaría trazar una matriz de correlación, como esta
TopProduct | 1234 | 1234A |
1234 | 1 | 0,5 |
1234A | 0,33 | 1 |
La respuesta a "?" en la correlación sería cuántos productos en esa parte también estaban en la otra parte.
Espero haber dejado la pregunta clara. ¿Alguien tiene ideas sobre cómo hacer este tipo de cálculo?
Gracias de antemano!
Solved! Go to Solution.
@oscarrudnas - Lo hice así:
Measure 2 =
VAR __T = MAX('Table (4)'[TopProduct])
VAR __T1 = MAX('Table 2'[TopProduct])
VAR __Parts = SELECTCOLUMNS(FILTER(ALL('Table (4)'),[TopProduct] = __T),"__Parts",[ComponentPart])
VAR __Parts1 = SELECTCOLUMNS(FILTER(ALL('Table (4)'),[TopProduct] = __T1),"__Parts",[ComponentPart])
VAR __In = INTERSECT(__Parts,__Parts1)
RETURN
COUNTROWS(__In) / COUNTROWS(__Parts)
PBIX se adjunta a continuación sig, desea tabla (4) y tabla 2.
Proud to be a Super User!
@oscarrudnas - Lo hice así:
Measure 2 =
VAR __T = MAX('Table (4)'[TopProduct])
VAR __T1 = MAX('Table 2'[TopProduct])
VAR __Parts = SELECTCOLUMNS(FILTER(ALL('Table (4)'),[TopProduct] = __T),"__Parts",[ComponentPart])
VAR __Parts1 = SELECTCOLUMNS(FILTER(ALL('Table (4)'),[TopProduct] = __T1),"__Parts",[ComponentPart])
VAR __In = INTERSECT(__Parts,__Parts1)
RETURN
COUNTROWS(__In) / COUNTROWS(__Parts)
PBIX se adjunta a continuación sig, desea tabla (4) y tabla 2.
Proud to be a Super User!
¡Increíble! ¡Gracias!
Necesidad de entender el código de dax detrás de él todavía, pero eso hizo el truco! ¡Muchas gracias!
@oscarrudnas - Claro, las dos primeras líneas simplemente averiguan dónde estamos en la matriz obteniendo el valor de la fila y la columna. A continuación, creamos dos variables de tabla que filtran las filas de nuestra tabla de hechos base en función de los valores que tenemos para nuestra fila y columna. Usamos SELECTCOLUMNS para obtener la columna que nos interesa.
INTERSECT es la clave, devuelve las filas que son comunes entre la primera tabla y la última tabla. Así que es sólo dividir esto por nuestro recuento de filas.
Proud to be a Super User!
@oscarrudnas, consulte si estos pueden ayudar
https://www.youtube.com/watch?v=xbTNYoW116g
Proud to be a Super User!
User | Count |
---|---|
206 | |
77 | |
55 | |
55 | |
34 |
User | Count |
---|---|
13 | |
4 | |
3 | |
3 | |
2 |