Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Análisis de cestas - (¡Más difícil de lo que crees!)

Hola a todos

Me he estado golpeando la cabeza contra esto durante la última semana. Sería muy agradecido si alguien pudiera quitarle el dolor 😁

Tengo datos estructurados de esta manera:

Número de artículoCantidad de artículoUbicación de almacenamiento
110X
250X
514X
110Y
361Y
520Y
220Z
445Z

Quiero crear una matriz que tenga este aspecto:

Coincidencia de artículos:XYZ
X100 %67 %33 %
Y67 %100 %0 %
Z50 %0 %100 %

Explicación con el ejemplo:

X, Y = X Storage Location tiene los artículos 1, 2 y 5 (total 3 elementos distintos). Y Storage Location tiene los artículos 1, 3 y 5. Coinciden en los puntos 1 y 5. Así que la tasa de coincidencia para X,Y debe ser 2 elementos coincidentes divididos por 3. = 67%.

X, Z = X Storage Location tiene los artículos 1, 2 y 5 (total 3 elementos distintos). Z Storage Location tiene los artículos 2 y 4. Coinciden en el punto 2. Así que la tasa de coincidencia para X,Y debe ser 1 elementos coincidentes divididos por 3. = 33%.

Z, X = Z Storage Location tiene los artículos 2 y 4 (total 2 elementos distintos). X Storage Location tiene los artículos 1,2 y 5. Coinciden en el punto 2. Así que la tasa de coincidencia para Z, X debe ser 1 elementos coincidentes divididos por 2. = 50%.

Esto significa que el contexto de la fila vs columnas de la matriz importa, donde la fila es el contexto base.

También tengo una tabla de dimensiones para cada elemento en la que podría filtrar para la matriz que quiero crear, por ejemplo, solo ciertas categorías de elementos.

He estado tratando de aplicar algo de lo que hay en este video Cross-Selling Matrix In Power BI - Advanced Analysis w/DAX - YouTube

pero no he podido aplicarlo a mi problema.

Incluso algunas orientaciones sobre cómo estructurar esto serían útiles.

¡Gracias! 😁

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

El truco aquí es configurar tablas de parámetros independientes para usarlas para las filas y columnas de la matriz. Puede definirlas como tablas calculadas como esta:

DataRows = VALUES ( Data[Storage Location] )

DataCols = VALUES ( Data[Storage Location] )

A continuación, necesita una medida que lea en el contexto de filtro proporcionado al colocar las columnas de estas tablas calculadas en un objeto visual de matriz y calcule el resultado que busca.

PercentMeasure =
VAR RowVal = SELECTEDVALUE ( DataRows[Storage Location] )
VAR ColVal = SELECTEDVALUE ( DataCols[Storage Location] )
VAR RowItems = CALCULATETABLE ( VALUES ( Data[Item number] ), Data[Storage Location] = RowVal )
VAR ColItems = CALCULATETABLE ( VALUES ( Data[Item number] ), Data[Storage Location] = ColVal )
RETURN
    DIVIDE (
        COUNTROWS ( INTERSECT ( RowItems, ColItems ) ) + 0,
        COUNTROWS ( RowItems )
    )

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

El truco aquí es configurar tablas de parámetros independientes para usarlas para las filas y columnas de la matriz. Puede definirlas como tablas calculadas como esta:

DataRows = VALUES ( Data[Storage Location] )

DataCols = VALUES ( Data[Storage Location] )

A continuación, necesita una medida que lea en el contexto de filtro proporcionado al colocar las columnas de estas tablas calculadas en un objeto visual de matriz y calcule el resultado que busca.

PercentMeasure =
VAR RowVal = SELECTEDVALUE ( DataRows[Storage Location] )
VAR ColVal = SELECTEDVALUE ( DataCols[Storage Location] )
VAR RowItems = CALCULATETABLE ( VALUES ( Data[Item number] ), Data[Storage Location] = RowVal )
VAR ColItems = CALCULATETABLE ( VALUES ( Data[Item number] ), Data[Storage Location] = ColVal )
RETURN
    DIVIDE (
        COUNTROWS ( INTERSECT ( RowItems, ColItems ) ) + 0,
        COUNTROWS ( RowItems )
    )

Hola, lo siento por los elogios retrasados, el cajero automático de vida ocupado. Esta solución fue increíble. Spot on resolvió el problema. Muchas gracias Alexis por la respuesta bien estructurada!

¡Todo lo mejor para ti! 🙂

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors