cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Highlighted
Helper I
Helper I

Columna de filtrado basada en otra tabla basada en múltiples criterios

Hola

Hace poco empecé a trabajar con Power Bi. Simplemente no puedo seguir adelante con la siguiente pregunta.

En Table1, todos los valores de la columna ID deben generarse que no están contenidos con la columna ID en Table2

O que no cumplan los siguientes criterios en la tabla 2: isValid ? 1 AND isComplete ? 1.

Más adelante en el panel, la salida debe estar más limitada por una segmentación de tiempo.

Tabla1

Id

Nombre1

Nombre2

Ciudad

DE-001

Mike

S.

B.

DE-002

Ted

F.

L.

DE-003

Frank

M.

F.

DE-004

Marc

C.

T.

DE-005

Fiona

F.

L.

Tabla2

Id

isValid

isComplete

Fecha

DE-001

0

0

04.04.2016

DE-002

1

0

07.04.2016

DE-003

0

1

23.05.2016

DE-004

1

1

23.05.2016

DE-004

0

0

04.08.2017

DE-007

0

0

16.08.2017

Sin una segmentación de tiempo la salida debe ser: DE-001, DE-004, DE-005

Con una cortadora de tiempo establecida para todo el año 2017: DE-004, DE-005

¡Muchas gracias por sus sugerencias!

Saludos soleados desde Babelsberg,

Sigmund

15 REPLIES 15
Highlighted
Super User IV
Super User IV

Si Table1 es una tabla maestra para la tabla 2, puede unirlos de ID

Puede crear una medida como

Calculate(count(Table2[ID]),Table2[isValid]-1,Table2[isComplete]-1)

Y usar que es usted visual, que debe funcionar



Did I answer your question? Mark my post as a solution! Appreciate your Kudos!!
Dashboard of My Blogs !! YouTube Channel !! Connect on Linkedin

Proud to be a Super User!

Highlighted

Hola @amitchandak,

Gracias por su apoyo. Cuando estoy usando este código, solo cuenta los iDE que cumplen los criterios, pero no veo los iDs filtrados como quiero. Además de eso, la medida se basa en la Tabla2. Entonces, ¿qué debo hacer?

CALCULATE(COUNT(Table2[ID]); Table2[isValid]=0; Table2[isComplete]=0)

Highlighted
Community Support
Community Support

Hola @Sigmund,

Creo que puede utilizar la condición para extraer la lista de id de 'tabla 2', a continuación, se puede utilizar 'in' operador o función INTERSECT para comparar con el id actual en 'tabla 1' y id list and return Tag y utilizarlo en 'filtro de nivel visual' para controlar los registros mostrados.

Filtro de medida:

Measure =
VAR currID =
    VALUES ( Table1[ID] )
VAR list =
    CALCULATETABLE (
        VALUES ( Table2[ID] ),
        FILTER ( ALL( Table2 ), [isValid] = 1 && [isComplete] = 1 )
    )
RETURN
    IF ( INTERSECT ( cuddID, list ) = 0, "Y", "N" )

saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.
Highlighted

Hola @v-shex-msft,

Por lo que veo, su enfoque va exactamente en la dirección correcta.

No recibo un mensaje de error con el siguiente código:

Measure = 
        VAR currID =
            VALUES ( Table1[ID] )
            VAR list =
            CALCULATETABLE (
                VALUES ( Table2[ID] );
                FILTER ( ALL( Table2 ); [isValid] = 1 && [isComplete] = 1 )
            )
        RETURN
            IF ( INTERSECT ( currID; list ) = 0; "Y"; "N" )

Pero si quiero integrar la medida en un objeto visual: recibo el siguiente mensaje de error: MdxScript (Modelo) (10, 41) Error de cálculo en la medida 'Tabla1' [Medida]: las comparaciones DAX no admiten comparaciones entre valores del texto de tipo y entero. Puede utilizar la función VALUE o la función FORMAT para convertir uno de los valores.

Highlighted

Hola @Sigmund ,

Asegúrese de que las columnas "isValid" y "isComplete" tienen el mismo formato en el editor de consultas, así como las columnas ID de ambas tablas.

Imke Feldmann (The BIccountant)

If you liked my solution, please give it a thumbs up. And if I did answer your question, please mark this post as a solution. Thanks!

How to integrate M-code into your solution -- How to get your questions answered quickly -- How to provide sample data -- Check out more PBI- learning resources here -- Performance Tipps for M-queries

Highlighted

Hola @ImkeF,

Gracias por sus comentarios. ID tiene el formato de texto, isValid y isNull tienen el formato de enteros.
Sin embargo, sigo recibiendo el mensaje de error que indica que el texto no se puede comparar con los enteros.

Highlighted

Hola @Sigmund,

Lo sentimos, parece que me olvido de agregar la función 'COUNTROWS' para empaquetar el resultado de la función INTERSECT. (este problema debe deberse a la comparación con el valor de tipo de lista/tabla y el valor de tipo entero)

DAX INTERSECT

Measure =
VAR currID =
    VALUES ( Table1[ID] )
VAR list =
    CALCULATETABLE (
        VALUES ( Table2[ID] );
        FILTER ( ALL ( Table2 ); [isValid] = 1 && [isComplete] = 1 )
    )
RETURN
    IF ( COUNTROWS ( INTERSECT ( currID; list ) ) = 0; "Y"; "N" )

Si por encima todavía no ayuda, ¿puede compartir un archivo pbix de muestra ficticio para probar?

saludos

Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.
Highlighted

Hola @v-shex-msft;

¡Gracias de nuevo! ¿Cómo puedo cargar un archivo pbix de ejemplo? Eso es lo que obtengo con la nueva medida.

Measure.jpg

Highlighted

HI @Sigmund,

Como dije, esta fórmula es un filtro de medida. Por lo tanto, debe agregar esto a un objeto visual de tabla que utilizó campos table1 y filtrar los registros de etiquetas 'Y'.

Aplicación de un filtro de medida en Power BI

Para el archivo de ejemplo pbix, puede cargarlo en 'onedrive for Business' y compartir el enlace aquí. (aviso: no adjunte ningún dato confidencial)

saludos
Xiaoxin Sheng

Community Support Team _ Xiaoxin
If this post helps, please consider accept as solution to help other members find it more quickly.

Helpful resources

Announcements
Community Conference

Power Platform Community Conference

Check out the on demand sessions that are available now!

Community Conference

Microsoft Power Platform Communities

Check out the Winners!

secondImage

Create an end-to-end data and analytics solution

Learn how Power BI works with the latest Azure data and analytics innovations at the digital event with Microsoft CEO Satya Nadella.

Top Solution Authors