Forum Discussion

Syndicate_Admin's avatar
Syndicate_Admin
Administrator
4 years ago
Solved

Filtrado ortogonal

Hola chicos!

¿Hay alguien que sepa cómo implementar el llamado filtrado "ortogonal" en PBI? A qué me refiero.

Esto es visual de datos. Hay cientos de productos probados en cientos de ubicaciones. En la tabla puede ver los resultados de las pruebas. ¿Con qué facilidad filtrar esas ubicaciones (TRLID), donde solo se probaron 3 productos seleccionados juntos? Si se selecciona manualmente, debe ser la segunda y cuarta franja desde la parte inferior:

Pavel_Ischenko_1-1634678177385.png

  • Hay @Pavel_Ischenko ,

    Intenta crear esta medida

    Measure = 
    VAR _count =
        CALCULATE (
            COUNT ( 'Table'[Result] ),
            FILTER ( ALLSELECTED ( 'Table' ), [TRILD] = MAX ( 'Table'[TRILD] ) )
        )
    VAR _count2 =
        CALCULATE ( DISTINCTCOUNT ( 'Table'[HGHNM] ), ALLSELECTED ( 'Table' ) )
    RETURN
        IF ( ISFILTERED('Table'[HGHNM])&&_count = _count2, 1 )

    A continuación, coloque la medida en Filtros y establezca lo siguiente:

    2.png

    Al filtrar, vea los resultados

    3.png

    Saludos

    Esteban Tao

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

5 Replies

      • Syndicate_Admin's avatar
        Syndicate_Admin
        Administrator

        Cree una nueva tabla calculada para usarla como segmentación de datos y valores de columna para la matriz.

        Slicer  = VALUES ( Table1[HGHNM] )

        A continuación, defina una medida para comprobar si el conjunto de productos seleccionados es el mismo que el conjunto de productos para el TRLID dado.

        ResultSliced =
        VAR SlicerValues = ALLSELECTED ( Slicer[HGHNM] )
        VAR TRLValues = VALUES ( Table1[HGHNM] )
        VAR SharedCount = COUNTROWS ( INTERSECT ( SlicerValues, TRLValues ) )
        RETURN
            IF (
                COUNTROWS ( SlicerValues ) = SharedCount && COUNTROWS ( TRLValues ) = SharedCount,
                CALCULATE ( SUM ( Table1[Result] ), Table1[HGHNM] IN VALUES ( Slicer[HGHNM] ) )
            )

        Nota: Verifiqué la igualdad de conjuntos aquí tomando la intersección de los dos conjuntos y verificando si tiene la misma cardinalidad que cada uno de los conjuntos que se cruzan. Si tanto A como B solo contienen valores de A ∩ B, entonces estos conjuntos serán iguales.

  • Hay @Pavel_Ischenko ,

    Intenta crear esta medida

    Measure = 
    VAR _count =
        CALCULATE (
            COUNT ( 'Table'[Result] ),
            FILTER ( ALLSELECTED ( 'Table' ), [TRILD] = MAX ( 'Table'[TRILD] ) )
        )
    VAR _count2 =
        CALCULATE ( DISTINCTCOUNT ( 'Table'[HGHNM] ), ALLSELECTED ( 'Table' ) )
    RETURN
        IF ( ISFILTERED('Table'[HGHNM])&&_count = _count2, 1 )

    A continuación, coloque la medida en Filtros y establezca lo siguiente:

    2.png

    Al filtrar, vea los resultados

    3.png

    Saludos

    Esteban Tao

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