Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Estoy tratando de crear un gráfico de pareto utilizando el gráfico de columnas y líneas, pero me estoy topando con un problema al intentar calcular el % acumulado que se requiere en un pareto.
Tengo 2 tablas, Pruebas y Anomalías de Prueba vinculadas por Id. de Prueba:
Dados los siguientes datos, me gustaría ver los resultados a continuación al ordenar los resultados por el recuento de errores por tipo de anomalía:
Pruebas
Id. de prueba | operador | resultado | fecha |
1 | abecedario | pasar | domingo, 27 de junio de 2021 |
2 | abecedario | fallar | domingo, 27 de junio de 2021 |
3 | Xyz | pasar | domingo, 27 de junio de 2021 |
4 | Xyz | fallar | domingo, 27 de junio de 2021 |
5 | abecedario | fallar | domingo, 27 de junio de 2021 |
6 | Xyz | pasar | lunes, 28 de junio de 2021 |
7 | Xyz | fallar | lunes, 28 de junio de 2021 |
8 | abecedario | pasar | lunes, 28 de junio de 2021 |
9 | abecedario | fallar | lunes, 28 de junio de 2021 |
10 | Xyz | fallar | lunes, 28 de junio de 2021 |
Anomalías de prueba
Id. de prueba | anomalía |
2 | C |
2 | B |
4 | A |
5 | C |
7 | B |
9 | C |
9 | B |
10 | C |
10 | B |
10 | A |
Resultado esperado
anomalía | Recuento de anomalías (ordenar DESC por esta columna) | % acumulado |
B | 4 | 40% |
C | 4 | 80% |
A | 2 | 100% |
¿Cómo puedo calcular el % acumulado en este escenario?
P.S. He leído artículos y he visto otras respuestas donde hay una columna clasificable de valores precal calculados para calcular el % acumulado, pero en este caso no hay ninguna columna de ordenación porque el recuento de anomalías será dinámico en función de la selección del filtro. Por ejemplo, el usuario puede filtrar por Fecha y eso cambiaría el criterio de ordenación.
Ejemplo de PBIX se puede descargar aquí:
https://1drv.ms/u/s!Arsjvofj3uEZh8sJnGi8OVry7dWAQw?e=vgZzZv
Solved! Go to Solution.
De todos modos, lo descubí usando algunas tablas temporales para obtener la "columna de ordenación". Fue mucho más complicado de lo que había previsto. Esta es la solución con la que terminé:
Cumulative % =
VAR countSummaryTable =
CALCULATETABLE(
SUMMARIZE(
'Test Anomalies',
'Test Anomalies'[Anomaly],
"Anomaly Count", COUNT('Test Anomalies'[Anomaly])
),
REMOVEFILTERS('Test Anomalies'[Anomaly])
)
VAR rankedSummaryTable =
ADDCOLUMNS(
countSummaryTable,
"Anomaly Count Rank", RANKX(countSummaryTable,
RANKX(countSummaryTable, [Anomaly Count] + DIVIDE(
RANKX(countSummaryTable, [Anomaly]),
COUNTROWS(countSummaryTable) + 1)
), ,ASC,Dense))
VAR selectedAnomalyRank = MAXX(FILTER(rankedSummaryTable, [Anomaly]=SELECTEDVALUE('Test Anomalies'[Anomaly])), [Anomaly Count Rank])
VAR totalAnomalies = SUMX(countSummaryTable, [Anomaly Count])
RETURN
DIVIDE(
SUMX(
FILTER(rankedSummaryTable, [Anomaly Count Rank] <= selectedAnomalyRank),
[Anomaly Count]
),
totalAnomalies
)
hola
¿Alguna razón por la que la anomalía está en el orden de B, C, A y no C, B, A cuando B y C tienen el mismo recuento? Además, para esta pregunta específica, ¿cuál es el uso de la tabla Pruebas? Para su esperado, todo lo que necesitamos es la Tabla de anomalías de prueba.
hola
En caso de empate (en este caso B y C tienen el mismo recuento), no importa en qué orden aaparecen las anomalías. Resulta que el gráfico de columnas y la tabla de Power BI lo mostraban en el orden B,C,A cuando puse los datos en un objeto visual y los ordené por el recuento de anomalías.
El motivo de la tabla Pruebas es que quiero filtrar por fecha. En los datos de ejemplo, el filtrado para mostrar solo el lunes frente al domingo debería dar como resultado un orden diferente. Solo para el domingo, el orden de pareto se convierte en "C, A, B", y solo para el lunes, el orden de pareto se convierte en "B, C, A".
gracias
Hubert
No @hwong ,
Para calcular el valor total de ejecución, debe tener una 'columna ordenada'.
En función de su informe, ya que utiliza la columna de fecha para filtrar, por lo que necesita otra "columna ordenada" para calcular el valor total de ejecución.
Consulte: Calcular dinámicamente un total acumulado o un total acumulado de Power BI
Saludos
Equipo de apoyo a la comunidad _ Yingjie Li
Si este post ayuda,entonces por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
hola
Necesito ordenar por el recuento de las anomalías, que debe ser dinámico para tener en cuenta los filtros y las segmentaciones de datos. Esta es la razón por la que no sé qué usar para una "columna de ordenación". El criterio de ordenación no se conoce hasta que se presenta el objeto visual y se tienen en cuenta los filtros o segmentaciones de datos.
gracias
Hubert
De todos modos, lo descubí usando algunas tablas temporales para obtener la "columna de ordenación". Fue mucho más complicado de lo que había previsto. Esta es la solución con la que terminé:
Cumulative % =
VAR countSummaryTable =
CALCULATETABLE(
SUMMARIZE(
'Test Anomalies',
'Test Anomalies'[Anomaly],
"Anomaly Count", COUNT('Test Anomalies'[Anomaly])
),
REMOVEFILTERS('Test Anomalies'[Anomaly])
)
VAR rankedSummaryTable =
ADDCOLUMNS(
countSummaryTable,
"Anomaly Count Rank", RANKX(countSummaryTable,
RANKX(countSummaryTable, [Anomaly Count] + DIVIDE(
RANKX(countSummaryTable, [Anomaly]),
COUNTROWS(countSummaryTable) + 1)
), ,ASC,Dense))
VAR selectedAnomalyRank = MAXX(FILTER(rankedSummaryTable, [Anomaly]=SELECTEDVALUE('Test Anomalies'[Anomaly])), [Anomaly Count Rank])
VAR totalAnomalies = SUMX(countSummaryTable, [Anomaly Count])
RETURN
DIVIDE(
SUMX(
FILTER(rankedSummaryTable, [Anomaly Count Rank] <= selectedAnomalyRank),
[Anomaly Count]
),
totalAnomalies
)
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |