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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
pbhat89
Helper II
Helper II

Filtro cruzado ( para excluir )

Anteriormente he planteado esta consulta ( https://community.powerbi.com/t5/Desktop/Cross-filtering-across-tables/m-p/1398390# ) y (https://community.powerbi.com/t5/Desktop/Cross-Filter-across-tables-2/m-p/1412162#M597413), pero no tengo una respuesta eficaz para cerrar el problema. Traspasar con más claridad sobre el requisito.

Reestreando el ejemplo siguiente, con edición menor en filtros:

TABLA 1

pbhat89_4-1601874370996.png

Cada fila muestra 1 ID solamente. ID no se repite en LA TABLA 1

Medida : Count_of_unique_ID 8

TABLA 2

pbhat89_5-1601874412874.png

Cada fila es una combinación única de ID y Condición. es decir, ID, la condición no se repetirá. La tabla puede tener <ID de la tabla 1. Por ejemplo, no tendrá un nuevo ID 10 que no se ha producido en la tabla 1.

La unión actual está en ambas direcciones y a través de ID

FILTROS Y MEDIDA - SALIDA EXPECTADA.

FILTRO 1 - EDAD < 35 [ELIMINAR TODOS los que están por encima de 35]

FILTRO 2 - EXCLUIR (no filtrar) ID con CONDICION (A O B) - dos seleccionados [ selección múltiple debe permitirse aquí en solución]. Todos los demás que no tengan condición A o B o cualquier condición (no vienen en la tabla 2) deben mostrarse. Donde se produjo A o B ( IDs , debe excluirse ). El filtro debe funcionar como multiseguido, por ejemplo (A o B)

TABLA 1 después de los filtros

pbhat89_6-1601874744620.png

Medida : Count_of_unique_ID 3

Basado en la solución anterior de (Equipo de soporte de la comunidad _ zhenbw) en el enlace (https://community.powerbi.com/t5/Desktop/Cross-filtering-across-tables/m-p/1398390#) sólo funciona si se selecciona una condición, es decir, A . Si selecciono dos condiciones, vuelve a su recuento original.

¿Cuál es el mejor appraoch para resolver esto?

1 ACCEPTED SOLUTION

Hola @pbhat89 ,

No estoy seguro de lo que quiere decir con"Leo en línea que no podemos hacer referencia a variables de una tabla temporal en Power BI." pero compruebe el siguiente post de SQLBI donde hacen referencias a cómo usar cálculos de variables y obtener datos de esas tablas.

https://www.sqlbi.com/articles/table-and-column-references-using-dax-variables/

En cuanto a mi segundo comentario, estaba haciendo referencia a que puede usar los nuevos parámetros de consulta M para crear una nueva tabla que recoja los valores de segmentación de datos filtrando los datos y, a continuación, use esa 3a tabla para realizar la visualización de datos junto con la segmentación de la condición.

Consulta la entrada del blog a continuación:

https://blog.crossjoin.co.uk/2020/10/25/why-im-excited-about-dynamic-m-parameters-in-power-bi/


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



View solution in original post

9 REPLIES 9
MFelix
Super User
Super User

Hola @pbhat89 ,

Según los datos que muestre que necesita hacer una medida similar a esta:

Calculation =
VAR temp_table =
    FILTER (
        ALLSELECTED ( Table1[ID]; Table1[Age] );
        NOT ( Table1[ID] IN VALUES ( Table2[ID] ) )
    )
RETURN
    COUNTROWS ( temp_table )

Tenga en cuenta que solo estoy trabajando con dos segmentaciones en Age y con la condición de agregar segmentaciones adicionales para la altura o la puntuación, debe agregarla al estamento allseleted.

Adjunto de resultado y a continuación:

MFelix_0-1603462427939.png

Tenga en cuenta que en esta opción he desactivado las interacciones entre las dos segmentaciones de datos, pero pueden estar activadas si lo necesita.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Dado que en el caso real - tengo muchas variables en la tabla 1 que se pueden utilizar como filtros - podría aconsejar algo como :

FILTER(input_db_disc_edited,input_db_disc_edited[name]-_selected)) + EL NOT ( table1[ID].... en la tabla2[ID])

Hola @pbhat89 ,

Como se ha referido, es necesario colocar esas variables dentro de los

Calculation =
VAR temp_table =
    FILTER (
        ALLSELECTED ( Table1[ID]; Table1[Age]; table [column];...;table [columnzz] );
        NOT ( Table1[ID] IN VALUES ( Table2[ID] ) )
    )
RETURN
    COUNTROWS ( temp_table )


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



gracias @MFelix - lo hice para trabajar, pero con mi tablero real, pero tuve que añadir si argumento filtrado para asegurarse de que se aplica no sólo cuando se seleccionan los filtros en la tabla de condiciones. mis datos reales llega lejos para más complejo donde tengo muchos cálculos aparte de contar. Estas son fórmulas condicionales que dificultan la escritura de un código con requisitos (filtrados y no en) .

Simplemente quiero obtener una tabla X (subconjunto de la tabla 1 ) que se actualiza como i

Parte (A) : seleccione los filtros (diga Edad , Altura )

Parte (B) : pero tiene una interacción diferente (B) con la tabla 2 -

- si la tabla 2 está filtrada ( uno o más seleccionados ) - a continuación, utilice el argumento not in (por ejemplo, como compartido por usted anteriormente)

- si la tabla no se ha filtrado ( nada seleccionado en condiciones ) - la tabla X sólo debe mostrarse en función de los filtros ( Edad , Altura ) y no

tener alguna conexión con el Cuadro 2.

Una vez que esta tabla X se genera / actualiza como i cambiar parámetros en la parte A o B - puedo crear todas las fórmulas de esta sola tabla X. Es fácil hacer la parte de los filtros (ya que las columnas están dentro de la tabla 1) pero con la parte B se vuelve compleja ¿Cómo podemos crear una tabla dinámica (a partir de consultas) que se actualiza en función de (A) y (B) arriba?

Hola @pbhat89

Si entiendo correctamente lo que necesita es que si no hay valores seleccionados en la condición de segmentación de datos debe obtener 6 (con un filtro de edad por debajo de 35) si se seleccionan valores se obtiene el número correcto:

MFelix_0-1603723933492.png

MFelix_1-1603724008409.png

¿Es esto correcto?

Sólo tiene que hacer los cálculos basados en su tabla inicial en este caso estoy usando un recuento que debe volver a escribir la fórmula para:

Calculation =
VAR temp_table =
    FILTER (
        ALLSELECTED ( Table1[ID]; Table1[Age] );
        NOT ( Table1[ID] IN VALUES ( Table2[ID] ) )
    )
RETURN
    IF (
        ISFILTERED ( Table2[Condition] );
        COUNTROWS ( temp_table );
        COUNTROWS ( Table1 )
    )

Tenga en cuenta que esta selección ISFILTERED tiene en cuenta que tiene alguna selección en la condición de segmentación de datos, por lo que si selecciona A, B y C utilizará el no si anula la selección de todos ellos, utilizará la tabla1.

No estoy seguro de si he entendido lo que necesita, pero espero que este sea el resultado que necesita.


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Hola @MFelix

Su comprensión es correcta y he logrado obtener mis fórmulas en forma de sintaxis a continuación.

(ignore el nombre, ya que esto se basa en mis datos reales)

(caído) (

var ignore_count - COUNT(KO_input_template[ID])
var select_count - CALCULATE(COUNT(KO_input_template[ID]),FILTER(KO_input_template,not(KO_input_template[ID] en values(input_db_disc_edited[ID]))))
var fin_count- if(ISFILTERED(input_db_disc_edited[name])-TRUE,select_count,ignore_count)
DEVOLUCION (fin_count)
)
sin embargo, como mencioné, hay muchos campos calculados de seguimiento que se basan en el campo anterior. Lo que deseo es una tabla que se genera más bien, es decir, tabla con el 6 O la tabla con 4 filas como se muestra a continuación. y para mí basar todos mis cálculos en esa mesa. que la tabla se actualiza a medida que de conjunto los filtros (Edad , Altura, etc.) o Seleccionar condiciones (o no seleccionar en absoluto)
¿Cómo puedo crear una tabla dinámica de este tipo a partir de mis tablas principales con power query o dax o de cualquier otra manera? También me di cuenta de que si creo una tabla temporal usando var - no puedo hacer referencia a una variable [ID] desde ella mis fórmulas.

Hola @pbhat89 ,

El uso de la tabla temporal le proporciona esa necesidad de crear la tabla con solo unas pocas filas y, a continuación, realizar cálculos encima de ella utilizando las diferentes columnas que están con esa tabla temporal.

Cuando tiene más de una medida relacionada con otra, los cálculos pueden llegar a ser bastante extraños, especcialmente si tiene instrucciones IF en la sintaxis de retorno, más cuando cambia el contexto en una visualización, los resultados también pueden ser desordenados.

Puede comprobar la nueva actualización de parámetros de consulta M que se basa en una selección de segmentación de datos tal vez pueda crear una nueva tabla para crear la segmentación de datos y, a continuación, elaborar el no en la otra tabla.

https://powerbi.microsoft.com/en-us/blog/power-bi-october-2020-feature-summary/#_Toc52195564


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Hola @MFelix

Cuando creo para crear una tabla temporal - no me permite hacer referencia a las columnas en la parte de cálculo. Leí en línea que no podemos hacer referencia a variables de una tabla temporal en Power BI.

Para su otro comentario : ¿podría aconsejar cómo hacerlo?

Si tengo una tabla:

pbhat89_0-1603761462840.png

¿cómo puedo crear una tabla dinámica que se actualiza en función de los filtros de la tabla 1, y la selección de arriba que conduce a cambios en la tabla 2 --> y la tabla 1 a partir de entonces (no en parte)

Hola @pbhat89 ,

No estoy seguro de lo que quiere decir con"Leo en línea que no podemos hacer referencia a variables de una tabla temporal en Power BI." pero compruebe el siguiente post de SQLBI donde hacen referencias a cómo usar cálculos de variables y obtener datos de esas tablas.

https://www.sqlbi.com/articles/table-and-column-references-using-dax-variables/

En cuanto a mi segundo comentario, estaba haciendo referencia a que puede usar los nuevos parámetros de consulta M para crear una nueva tabla que recoja los valores de segmentación de datos filtrando los datos y, a continuación, use esa 3a tabla para realizar la visualización de datos junto con la segmentación de la condición.

Consulta la entrada del blog a continuación:

https://blog.crossjoin.co.uk/2020/10/25/why-im-excited-about-dynamic-m-parameters-in-power-bi/


Regards

Miguel Félix


Did I answer your question? Mark my post as a solution!

Proud to be a Super User!

Check out my blog: Power BI em Português



Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

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.