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

GROUPBY con filtro

Hola a todos

Espero que pueda ayudarme con mi problema de Power BI. Esta es mi primera publicación, así que espero estar haciendo todo bien. Desafortunadamente, no puedo cargar mis datos de muestra en una nube en el trabajo.

Tengo una tabla ("Pruebas") donde tengo la misma persona ("ID") a lo largo del tiempo ("Trimestre") en diferentes grupos ("Grupo 1" y "Grupo 2") y diferentes resultados de pruebas ("Resultado").

Quiero saber cuántas personas por grupo tienen en un período de tiempo seleccionado al menos un resultado negativo de la prueba (Resultado = 1) y cuántas tienen todos los resultados de la prueba positivos (Resultado = 0).

Tabla de ejemplo "Pruebas"

Test_IDCuartoIDENTIFICACIÓNGrupo1Grupo2Resultado
111AX0
212AY1
313BZ0
414BY0
515CX1
621AX0
723BZ0
824BY1
925CX1
1026CZ1
1127DY0
1231AX0
1333BZ1
1434BY0
1535CX0
1636CZ0
1737BY1
1837DY0
1938BX0
2038DX1

Tengo una segunda tabla "Quarter_dist" con una fila por trimestre, que uso para una cortadora de dátiles. Tiene una relación 1:n con la tabla "Pruebas".

Intenté crear una tabla, que filtra la tabla "Pruebas" en los trimestres seleccionados, agrupa por "ID", "Grupo1" y "Grupo2" y calcula el máximo de "Resultado". Pero el filtro en los cuartos seleccionados no funciona. ¿Alguien tiene una idea de cómo resolver esto?

ID_distinct = 
VAR _Selectedtime =
    VALUES ( Quarter_dist[Quarter] )  
RETURN
GROUPBY (
        FILTER (
            Tests; 
            Tests[Quarter] IN _Selectedtime
        );
        Tests[ID];
        Tests[Group1];
        Tests[Group2];
        "count_ID"; 
        COUNTX (
            CURRENTGROUP ();
            Tests[ID]
        );
        "max_Ergebnis"; 
        MAXX ( 
            CURRENTGROUP (); 
            Tests[Result]
        )
)

Este es el resultado en una matriz:

naddi_0-1654179443515.png

Expectativa: Ignorar el trimestre "1", al seleccionar el trimestre "2" y "3".

¡Gracias de antemano!

3 REPLIES 3
Syndicate_Admin
Administrator
Administrator

¡ Gracias @abusen333 y @amitchandak por sus respuestas! Creo que no es exactamente lo que estoy buscando.

Lo que quiero: Datos agregados por persona de prueba para los trimestres seleccionados. Una persona de prueba se identifica por ID, Grupo1 y Grupo2 (y en los datos reales alrededor de cinco grupos más). La persona de prueba se hace la prueba en uno o más trimestres. Necesito información agregada sobre la persona de prueba para los trimestres seleccionados, por ejemplo, el máximo de "Resultado" para obtener

- "0" si "Resultado" es "0" en todos los trimestres seleccionados

- "1" si "Resultado" es "1" en al menos uno de los trimestres seleccionados

Luego podría crear otra columna, que sería por ejemplo "pasado" si max_Result = 1, "no pasado" si max_Result = 0.

Lo mismo que necesito para otras columnas también (no en el ejemplo).

Syndicate_Admin
Administrator
Administrator

@naddi , pruebe la solución desde @abusen333 .

Pero creo que necesitas algo como

un fallo =

countx(filter(summarize(Table, Table[ID],"_1" ,countrows(Table)
,"_2" ,countrows(filter(Table, Table[Result] =0))
,"_3" ,countrows(filter(Table, Table[Result] =1))
)
not(isblank(_3))))

All Pass =

countx(filter(summarize(Table, Table[ID],"_1" ,countrows(Table)
,"_2" ,countrows(filter(Table, Table[Result] =0))
,"_3" ,countrows(filter(Table, Table[Result] =1))
)
[_1] = [_2] ))

Syndicate_Admin
Administrator
Administrator

Hola

Puedo ser un relevo simplista en el contexto del filtro visual del recuento simple de ID.

Resultado

abusen333_1-1654181524951.png

Modelo de datos

abusen333_2-1654181575640.png

abusen333_3-1654181609277.png

abusen333_4-1654181632721.png

Por favor, hágamelo saber si esto es lo que está buscando

Helpful resources

Announcements
PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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