Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon'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.
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ículo | Cantidad de artículo | Ubicación de almacenamiento |
1 | 10 | X |
2 | 50 | X |
5 | 14 | X |
1 | 10 | Y |
3 | 61 | Y |
5 | 20 | Y |
2 | 20 | Z |
4 | 45 | Z |
Quiero crear una matriz que tenga este aspecto:
Coincidencia de artículos: | X | Y | Z |
X | 100 % | 67 % | 33 % |
Y | 67 % | 100 % | 0 % |
Z | 50 % | 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! 😁
Solved! Go to Solution.
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 )
)
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! 🙂