O Condición en el filtro de página

Un usuario Pregunto ✅

Maxfran

Hola,

Mi problema:

Quiero que mi informe sea filtrado por «FD1 = X» O por «FD2 = X», siendo FD1 y FD2 2 variables diferentes.

El informe debe mostrar datos de personas que tengan un valor X en la variable FD1 O en la variable FD2.

Si coloco 2 filtros (uno para FD1 y otro para FD2) en mi página, filtraré las personas que tengan un valor X en la variable FD1 Y la variable FD2.

Lo siento si no soy comprensible, mi inglés es bastante pobre.
Gracias por adelantado

Maxfran

En respuesta a Allison Kennedy

Eso tiene sentido. Sin embargo, esperaba algo que necesitara menos manipulaciones (agregar cada filtro individualmente es un poco repetitivo) pero creo que puedo hacerlo.

La otra solución que encontré es crear una nueva columna concatenando FD1 y FD2. Luego agregué un filtro avanzado en la página y eso requiere que la variable concatenada contenga «X».

Allison Kennedy

@Maxfran Si entiendo su publicación correctamente, ¿desea filtrar FD1 o FD2 para diferentes valores de ‘X’ que desea poder cambiar dinámicamente?

Primero necesitará una tabla de filtro no relacionada, así que agregue una nueva tabla al modelo de datos que contenga todos los valores de X por los que le gustaría filtrar:

ACTUALIZADO según las preguntas de @Maxfran:

Para crearlo en Power Query Editor:

En Transform Data Power Query Editor puede duplicar la consulta base (haga clic con el botón derecho en ella en el panel Consultas). Cambie el nombre de esta consulta duplicada a ‘Filtro’. Luego seleccione la columna FD1 y conviértala a la lista (busque el botón en la pestaña Transformar en la cinta). Elimine los duplicados para que esto solo tenga cada valor una vez. Convierta la lista de nuevo en tabla (pestaña Transformación de lista en la cinta).

Establezca el tipo de datos y nombre esta columna y cierre y aplique los cambios.

Llamé a la tabla Filtro y a la columna X, por lo que tendremos ‘Filtro'[X] para hacer referencia a esta columna en DAX.

Luego deberá crear una nueva MEDIDA calculada similar a:

ShowNoShow = IF (HASONEVALUE (‘Filtro'[X]), COUNTROWS (FILTER (Table, Table[FD1]= SELECTEDVALUE (‘Filtro'[X]) || Tabla[FD2]= SELECTEDVALUE (‘Filtro'[X]))), 1)
Finalmente, agregue el [ShowNoShow] medir como un filtro de nivel visual para los elementos visuales que desea filtrar y agregar una segmentación al informe para [X].

La solución de @nandukrishnavs funcionará si ‘X’ es estática y no necesita la segmentación en el informe.

¿Esta publicación ha resuelto tu problema? Por favor marcarlo como una solución para que otros puedan encontrarlo rápidamente y para que la comunidad sepa que su problema ha sido resuelto.

Si esta publicación le resultó útil, por favor dar Kudos.

Trabajo como formadora y consultora para Microsoft 365, especializándome en Power BI y Power Query.

https://sites.google.com/site/allisonkennedycv

Maxfran

En respuesta a Allison Kennedy

Por cierto, ya que soy un recién llegado a Power Bi, no estoy seguro de cómo lidiar con «Primero necesitará una tabla de filtro no relacionada, así que agregue una nueva tabla al modelo de datos que contenga todos los valores de X por los que le gustaría filtrar (puede hacer esto en el Editor de consultas duplicando una columna de FD1 o FD2). Elimine los duplicados para que esto solo tenga cada valor una vez. Llamé a la tabla Filtro y a la columna X, por lo que tendremos ‘Filtro'[X] para hacer referencia a esta columna en DAX «.

Dupliqué la columna «Première fédération déclarée» (FD1) en la base y la nombré «Filtre», luego eliminé los duplicados. Luego creé una nueva tabla llamada «Filtre» haciendo esto:

Filtre = VALORES (base[Filtre])
¿Es eso correcto?

Allison Kennedy

En respuesta a Maxfran

@Maxfran Prefiero crear las nuevas tablas en Power Query Editor en lugar de DAX si es posible solo por motivos de rendimiento, pero si lo que hizo está funcionando, también está bien.

Para crearlo en Power Query Editor:

En Transform Data Power Query Editor puede duplicar la consulta base (haga clic con el botón derecho en ella en el panel Consultas). Luego, seleccione la columna FD1 y conviértala en una lista (busque el botón en la cinta). Establezca el tipo de datos para esta lista y cierre y aplique los cambios.

Entonces, su medida en el informe debería estar bien, pero sí, tiene razón, no se puede usar en el visual de la página porque es una medida, por lo que deberá agregarlo a cada filtro de nivel visual en la página.

Maxfran

En respuesta a Allison Kennedy

Gracias por su respuesta. Quería usarlo en toda la página para que una medida no funcione, según tengo entendido …

Intentaré pensar en otra cosa 🤔

Allison Kennedy

En respuesta a Maxfran

@Maxfran La medida puede funcionar en toda la página, solo requiere un poco más de configuración porque tendrá que agregarla como un filtro a cada visual. Sin embargo, una vez que haya hecho eso, la nueva columna para X se puede agregar como un filtro de nivel de página o como un segmentador, y eso cambiará el valor de todas las medidas que agregó anteriormente como filtros a las imágenes y, por lo tanto, se actualizará todo en la página. ¡Voila!

¿Tiene sentido?

Maxfran

En respuesta a Allison Kennedy

Eso tiene sentido. Sin embargo, esperaba algo que necesitara menos manipulaciones (agregar cada filtro individualmente es un poco repetitivo) pero creo que puedo hacerlo.

La otra solución que encontré es crear una nueva columna concatenando FD1 y FD2. Luego agregué un filtro avanzado en la página y eso requiere que la variable concatenada contenga «X».

Allison Kennedy

En respuesta a Maxfran

La columna @Maxfran Concatanated fue lo primero que pensé, pero sin saber cómo están estructurados sus datos, no estaba seguro de qué se obtendría que no desea. Por ejemplo:

Si X = 70 y FD1 = 707 y FD2 = 90, la columna concatenada podría verse algo así como 707-90, ambas CONTIENEN 70 aunque ninguna columna sea IGUAL a 70. Ya que especificó = Me mantuve alejado de esa opción, pero si eso no es un problema para sus datos o si puede obtener el formato de X y la columna concatenada correctamente para que no sea un problema, entonces tiene razón, será mucho menos laborioso que mi solución. 🙂

Maxfran

En respuesta a Allison Kennedy


@AllisonKennedy escribió:

La columna @Maxfran Concatanated fue lo primero que pensé, pero sin saber cómo están estructurados sus datos, no estaba seguro de qué se obtendría que no desea. Por ejemplo:

Si X = 70 y FD1 = 707 y FD2 = 90, la columna concatenada podría verse algo así como 707-90, ambas CONTIENEN 70 aunque ninguna columna sea IGUAL a 70. Ya que especificó = Me mantuve alejado de esa opción, pero si eso no es un problema para sus datos o si puede obtener el formato de X y la columna concatenada correctamente para que no sea un problema, entonces tiene razón, será mucho menos laborioso que mi solución. 🙂


Hola,

Gracias por su respuesta. Como explica, esta solución es viable para mi tipo de datos.

Concatené FD1 y FD2 en una nueva variable con la sintaxis: FD1_FD2_ (con guiones bajos). Luego, cuando uso esta variable como filtro, selecciono «contiene» e indico la modalidad «X_» (con un guión bajo).

El uso de guiones bajos me permite evitar el hecho de que X podría estar contenido en otra modalidad (como usted explicó, por ejemplo, 70 está en 707).

Allison Kennedy

En respuesta a Maxfran

@Maxfran Conoces tus datos mejor que yo, así que espero que tengas razón, pero tu razonamiento no está completamente desarrollado, así que estoy publicando esto para otros y en caso de que tus datos no sean consistentes. El subrayado ayudará a algunos, pero no en el ejemplo que di, ya que 707_707 aún CONTENDRÁ 70. Entonces, básicamente, debe considerar cuidadosamente sus valores para X y asegurarse de que ninguno de los posibles valores de X pueda contener otro.

Por ejemplo, establecer el valor de X en 7, 7 estaría contenido en 7, 70 y 700, pero realmente solo desea los elementos que son iguales a 7 (por lo tanto, no los 70 y 700).

¿X es un número o un texto? Si es un número, podría solucionar este problema configurando la X como texto y forzándolo a que siempre tenga exactamente el mismo número de dígitos.

7 se convertiría en 007

70 se convertiría en 070

700 se quedaría 700

Entonces, establecer su valor X en 007 nunca estará contenido en 070 o 700.

¿Tiene sentido?

¿Esta publicación ha resuelto tu problema? Por favor marcarlo como una solución para que otros puedan encontrarlo rápidamente y para que la comunidad sepa que su problema ha sido resuelto.

Si esta publicación le resultó útil, por favor dar Kudos.

Trabajo como formadora y consultora para Microsoft 365, especializándome en Power BI y Power Query.

https://sites.google.com/site/allisonkennedycv

Maxfran

En respuesta a Allison Kennedy

Gracias por esta precisión.

707 contiene 70, pero no 70_ con un guión bajo implementado durante la concatenación.

Entonces, si filtro para tener solo «70_», estará bien.

En realidad, mis datos son texto, pero tuve el mismo problema que presentaste con los números.

Allison Kennedy

En respuesta a Maxfran

@Maxfran, por supuesto, lo siento, no leí con suficiente atención. Solución genial.

Maxfran

En respuesta a Allison Kennedy

@AllisonKennedy gracias por su respuesta

Desafortunadamente, no funciona.

Creé una tabla llamada «Filtre» y la columna también se llama «Filtre». Luego creo una medida:

Federación = SI (HASONEVALUE (Filtre[Filtre]); COUNTROWS (FILTRO (base; base[Première fédération déclarée]= SELECTEDVALUE (Filtre[Filtre]) || base[Deuxième fédération déclarée]= SELECTEDVALUE (Filtre[Filtre]))); 1)
Donde «Fédération» = el nombre de la medida, «base» es el marco de datos principal donde se almacenan mis datos, «Première fédération déclarée» es el FD1 arriba, la primera variable que se debe mirar, y «Deuxième fédération déclarée» es el FD2 arriba, la segunda variable en la que mirar.
La medida se creó correctamente pero es imposible arrastrarla y soltarla en la sección «filtrar en esta página».
¿Alguna idea?

nandukrishnavs

@Maxfran

Cree una columna calculada / columna personalizada para identificar si la fila necesita filtrar o no filtrar.

Ejemplo

FilterCondition =
IF (
    table[FD1] = X
        || table[FD2] = X,
    "Filter",
    "Not Filter"
)

Luego aplique esta columna calculada recién creada en el filtro de nivel de página.

¿Respondí tu pregunta? ¡Marque mi publicación como una solución!
Apreciar con felicitaciones
🙂

Maxfran

En respuesta a nandukrishnavs

Hola @nandukrishnavs, ¡gracias por tu rápida respuesta!

El hecho es que necesito poder cambiar el filtro. Primero puedo hacerlo con X pero luego Y, luego Z …

Si necesito crear una columna cada vez, eso no es realmente efectivo …

Por cierto,

Encuentro este tema útil https://community.powerbi.com/t5/Desktop/Or-Condition-on-filter/mp/833445#M400287

Pero no funciona en el filtro de la página. @ v-lid-msft

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *