Anónimo
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 | Parte componente |
1234 | ABC1 |
1234 | BCD2 |
1234 | CDE3 |
1234A | ABC1 |
1234A | EFG1 |
Me gustaría trazar una matriz de conexión, como esta
TopProduct | 1234 | 1234A |
1234 | 1 | 0,5 |
1234A | 0,33 | 1 |
La respuesta a «?» en la conclusión 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!
greg_deckler
@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.
greg_deckler
@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.
Anónimo
En respuesta a greg_deckler
¡Increíble! ¡Gracias!
Necesidad de entender el código de dax detrás de él todavía, pero eso hizo el truco! ¡Muchas gracias!
greg_deckler
En respuesta a Anónimo
@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.
amichandak
@oscarrudnas, consulta si estos pueden ayudar
https://www.mssqltips.com/sqlservertip/5197/correlation-analysis-using-correlation-plot-in-power-bi-…