Correlación en la estructura del producto

Un usuario Pregunto ✅

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

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *