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

Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.

Reply
Syndicate_Admin
Administrator
Administrator

Categorizar datos con varias filas en función de uno o más valores dentro de cada fila

Buenas noches. Tengo problemas al intentar hacer un análisis muy específico dentro de Power BI.

En este caso, tengo una hoja de cálculo en la que cada línea representa el resultado de un análisis químico realizado en varios lotes. Cada lote puede aparecer más de una vez, dependiendo de cuántos análisis se hayan realizado en él.

En estos análisis, podemos recibir 3 tipos de resultados: "regular", "irregular" y "ausente". Un mismo lote puede tener, dentro de su conjunto de análisis, resultados regulares, irregulares o ausentes.

Cuál es mi objetivo: Me gustaría crear una medida o generar una tabla que me permita ver qué lotes están dentro o fuera de la regularidad.

Para que un lote se considere irregular, basta con que solo una o más entradas sean irregulares o falten.

Ejemplo:

caiobarbas_1-1674614154576.png

En el caso anterior, hay 3 lotes diferentes (**5531, **5624 y **5888) dentro de 13 filas. Ninguno de ellos ha pasado el control de calidad:

- el número de lote 5531 tiene 1 parámetro irregular;

- el número de lote 5624 tiene 2 parámetros irregulares; y

- El número de lote 5888 tiene 3 parámetros de abscentes (resultados pendientes)

El resultado que me gustaría ver:

caiobarbas_2-1674614645876.png

Como puedes ver, la tabla quiero conseguirle una tabla bruja me indica el estado actual de todo el lote analizado.

- Si hay una sola fila irregular, todo el lote es irregular;

- Si hay una sola fila de descenso (sin filas irregulares), por lo que todo el lote tiene resultados pendientes;

- Si no hay filas de ausencias o irregulares, todo el lote ha pasado el control de calidad. Por lo tanto, se considera un lote regular.

Hasta ahora, he intentado crear una columna calculada (en la primera tabla) concatenando el número de lote con su estado, y luego aplicando una medida para contarlo claramente, filtrando los lotes irregulares. Pero demostró no ser útil, porque cuando trato de hacer la proporción del total de lotes irregulares en relación con el total de lotes, el número total no representa el número real de lotes, porque los lotes que presentan 2 o más resultados también se suman al conteo.

La única alternativa que pensé que era útil era hacer una estructura de base de datos completamente nueva, agregando todos los resultados en distintas columnas. Pero el tamaño de la base de datos es realmente grande, por lo que la tarea sería realmente difícil ...

Si alguien pudiera ayudarme con este pequeño gran problema, estaría muy agradecido.

Saludos.

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

@caiobarbas ,

Por favor, intente:

Measure = 
var _Irregualr = CALCULATE(COUNT('Table'[Status]),FILTER('Table',[Status]="Irregular"))
var _Ausente = CALCULATE(COUNT('Table'[Status]),FILTER('Table',[Status]="_Ausente"))
return SWITCH(TRUE(),
_Irregualr>0,"Irregular",
_Ausente>0&&_Irregualr=0,"Ausente",
"Pendente")

Resultado final:

vjianbolimsft_0-1674698525213.png

Saludos

Jianbo Li

Si esta publicación ayuda, considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Syndicate_Admin
Administrator
Administrator

@caiobarbas

intente trazar una tabla visual con la columna Lote controle y una medida como:

Medida =
VAR _batch = MAX(TableName[Lote de control])
DONDE _list =
CALCULATETABLE(
VALUES(TableName[Estado]),
TableName[Lote de control]=_batch
)
DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
"Irregular" IN _lista "Irregular",
"Ausente" EN _list, "Ausente",
"Pendiente"
)

Hola de nuevo, @FreemanZ .

Una cosa más: aunque la medida que codificaste está funcionando, ahora estoy atascado con esto: ¿cómo puedo funcionar como "contar" o "contar" en esta medida?

Lo que quiero hacer es verificar cuántos de esos lotes representan proporcionalmente los regulares, irregulares y ausencias del total. ¿Hay alguna manera de hacer esto?

Saludos.

Funcionó perfectamente, @FreemanZ . ¡Lo aprecio mucho! 🙏

Voy a echar un vistazo a cómo funcionan esas 3 funciones (CALCULATETABLE, VAR y SWITCH), para que pueda codificar estas soluciones por mi cuenta.

Muchas gracias, amigo mío.

Aquí el resultado:

caiobarbas_0-1674666119740.png

¡La salida exacta que esperaba!

Una vez más: ¡muchas gracias!

Syndicate_Admin
Administrator
Administrator

@caiobarbas , puede crear una nueva columna

Estado =

var _cnt = countx(filter(Table, [Lote controle] = before([Lote control] ) && [Status] ="Irregular"), [Lote control])

devolución

Switch(True(),

isblank(_cnt) , "Pendiente",

"Irregular"

)

Puede condiciones adicionales

¡Hola, @amitchandak ! Acabo de probar tu alternativa, y parece estar funcionando bien.

Sin embargo, no estoy obteniendo los resultados "Regulares" dentro de los lotes que han pasado la prueba de calidad.

("Conforme" significa "Regular")

Ejemplo:

caiobarbas_0-1674667972994.png

Todo el lote es regular, pero todavía estoy "pendiente" como resultado de la columna.

Como no sé mucho cómo funcionan las funciones que utilizaste, me temo que no puedo agregar la condición yo mismo 😅.

¿Cómo añadirías este caso adicional?

Saludos.



Helpful resources

Announcements
LearnSurvey

Fabric certifications survey

Certification feedback opportunity for the community.

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.