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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
AlexF_HH
Frequent Visitor

¿Filtrado condicional?

Hola Comunidad,

Supongo que tengo una pregunta para principiantes aquí.
Por favor, eche un vistazo a esta sencilla tabla:

2020-04-28_1603

Mi taks es qount los elementos únicos en 'Column1' que igualan X pero NO Y en 'Column 2'.
El resultado shoub ser 'B' -> 1.

El filtrado normal no funciona para ese tipo de problemas.
La mejor fórmula que pude construir fue:

Medidas: CALCULATE(DISTINCTCOUNT(Tabelle1[Column1]); Tabelle1[Column2] á "X" && Tabelle1[Column2] <> "Y")


Pero esa fórmula devuelve A, B -> 2

Tal vez puedas sugerir una buena solución para eso.

Sería genial si la lógica también funciona con factores mutiple como: Contar elementos únicos DONDE Column2 ES 'X' PERO NO 'Y' Y Column3 ES 'Z' PERO NO 'W', etc.

¡Gracias!

Alex

1 ACCEPTED SOLUTION

Hola @AlexF_HH ,

El uso de la medida devuelve solo un valor agregado, no una fila. Pero puede agregar una tabla calculada para ella o agregar un filtro en el objeto visual de tabla.

Aquí está el dax para la tabla calculada:

Table 2 =

VAR a =

    SUMMARIZE (

        'Table1',

        'Table1'[Column1],

        "ifcontainY", IF (

            "Y" IN VALUES ( 'Table1'[Column2] ),

            0,

            CALCULATE (

                DISTINCTCOUNT ( 'Table1'[Column1] ),

                FILTER ( 'Table1', 'Table1'[Column2] <> "Y" )

            )

        )

    )

RETURN

    FILTER ( a, [ifcontainY] <> 0 )

>>Contar elementos únicos en la Columna1 que tiene la Columna 2 - X, pero NO Y Y Y Columna3 - "Sí" pero NO "no".

Por favor refiérase a:

Table =

VAR a =

    SUMMARIZE (

        'Table1',

        'Table1'[Column1],

        "ifcontainY", IF (

            "Y" IN VALUES ( 'Table1'[Column2] )

                && "no" IN VALUES ( 'Table1'[Column3] ),

            0,

            CALCULATE (

                DISTINCTCOUNT ( 'Table1'[Column1] ),

                FILTER ( 'Table1', 'Table1'[Column2] <> "Y" && Table1[Column3] <> "no" )

            )

        )

    )

RETURN

    FILTER ( a, [ifcontainY] <> 0 )

Untitled picture2.png

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Saludos

Dedmon Dai

View solution in original post

4 REPLIES 4
v-deddai1-msft
Community Support
Community Support

Hola @AlexF_HH ,

¿Podría decirme si la captura de pantalla de abajo es su salida esperada? ¿O puede mostrarnos su salida esperada?

Untitled picture.png

Puede crear una medida como:

Measure =

IF (

    "Y" IN VALUES ( 'Table'[Column2] ),

    0,

    CALCULATE (

        DISTINCTCOUNT ( 'Table'[Column1] ),

        FILTER ( 'Table', 'Table'[Column2] <> "Y" )

    )

)

Si desea que la lógica también funcione con varios factores, la medida realmente necesita ser modificada depende de su requisito.

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Saludos

Dedmon Dai

Hola @v-deddai1-msft ,

gracias por sus comentarios.

Acabo de esperar que el total en su salida sea 1.

B es el único elemento que tiene una relación Columna2 : X y NO relaciones, Y.
Así que esa parte es correcta:

2020-04-29_0948

Por múltiples factores me refiero al mismo tipo de lógica, pero se utiliza varias veces.

2020-04-29_0950

Cuente los elementos únicos en la Columna1 con la Columna 2 x, pero NO, Y Y Y Column3, "Sí", pero NO "no".
La salida de medida expecxted sería B -> 1.

Gracias

Alex

Hola @AlexF_HH ,

El uso de la medida devuelve solo un valor agregado, no una fila. Pero puede agregar una tabla calculada para ella o agregar un filtro en el objeto visual de tabla.

Aquí está el dax para la tabla calculada:

Table 2 =

VAR a =

    SUMMARIZE (

        'Table1',

        'Table1'[Column1],

        "ifcontainY", IF (

            "Y" IN VALUES ( 'Table1'[Column2] ),

            0,

            CALCULATE (

                DISTINCTCOUNT ( 'Table1'[Column1] ),

                FILTER ( 'Table1', 'Table1'[Column2] <> "Y" )

            )

        )

    )

RETURN

    FILTER ( a, [ifcontainY] <> 0 )

>>Contar elementos únicos en la Columna1 que tiene la Columna 2 - X, pero NO Y Y Y Columna3 - "Sí" pero NO "no".

Por favor refiérase a:

Table =

VAR a =

    SUMMARIZE (

        'Table1',

        'Table1'[Column1],

        "ifcontainY", IF (

            "Y" IN VALUES ( 'Table1'[Column2] )

                && "no" IN VALUES ( 'Table1'[Column3] ),

            0,

            CALCULATE (

                DISTINCTCOUNT ( 'Table1'[Column1] ),

                FILTER ( 'Table1', 'Table1'[Column2] <> "Y" && Table1[Column3] <> "no" )

            )

        )

    )

RETURN

    FILTER ( a, [ifcontainY] <> 0 )

Untitled picture2.png

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Saludos

Dedmon Dai

Hola @v-deddai1-msft ,

¡Muchas gracias!

Saludos

Alex

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

Top Solution Authors
Top Kudoed Authors