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

Power BI is turning 10! Let’s celebrate together with dataviz contests, interactive sessions, and giveaways. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

¡Hola equipo! Necesita ayuda para crear un filtro basado en columnas.

Tengo datos de encuestas, tengo información del cliente, tiene 50 columnas de bandera con valores de sí / no. Tengo que crear un cortador que tenga todos estos nombres de columnas de bandera, de modo que si hago clic en las letras de una bandera que dicen HasPro, debería filtrar todas las imágenes por HasPro = sí.
P.D. Realmente no puedo anular la dinamización de los datos ya que hay 15 columnas.
Una muestra podría ser

cust no . | Ola de encuestas| Fecha de respuesta| iscitiezen | Tiene política | tiene pro | tiene premium | tiene PPU .
Todas las columnas después de la fecha de respuesta tienen valores sí/no. Tenga en cuenta que estas columnas no son mutuamente excluyentes, por lo que no puedo crear una sola columna calculada, que se pueda usar más adelante en una segmentación.

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

Gracias, por el equipo de ayuda, sin embargo, mi caso de uso es un poco diferente y tenía datos confidenciales en mi conjunto de datos, no pude proporcionar la muestra. Probé todas las soluciones anteriores, todas hicieron parte del trabajo, pero mi requisito es un poco diferente.

@Radz2707 ,

Como mencionaste, tus datos son confidenciales. No puede compartir datos de muestra. Sobre la base de sus entradas, he creado datos de muestra.

Siga los pasos a continuación.

1. Creación de datos de muestra basados en los encabezados de las columnas. Por favor, consulte SNAP.

vdineshya_0-1750075657782.png

2. Tabla desconectada creada, para reproducir los nombres de las banderas en la segmentación basada en el código DAX a continuación.

Selector de bandera = TABLA DE DATOS(
"NombreDeBandera", CUERDA,
{
{"EsCiudadano"},
{"HasPolicy"},
{"HasPro"},
{"HasPremium"},
{"HasPPU"}
}
)
3. Medida creada con el siguiente código DAX.
FlagFilterMeasure =
VAR SelectedFlag = SELECTEDVALUE(Selector de bandera[NombreDeBandera])
DEVOLUCIÓN
INTERRUPTOR(
VERDADERO(),
SelectedFlag = "EsCiudadano", SI(MÁXIMO(Datos de encuesta[EsCiudadano]) = "Sí", 1, 0),
SelectedFlag = "HasPolicy", SI(MÁXIMO(Datos de encuesta[HasPolicy]) = "Sí", 1, 0),
SelectedFlag = "HasPro", SI(MÁXIMO(Datos de encuesta[HasPro]) = "Sí", 1, 0),
SelectedFlag = "HasPremium", SI(MÁXIMO(Datos de encuesta[HasPremium]) = "Sí", 1, 0),
SelectedFlag = "HasPPU", SI(MÁXIMO(Datos de encuesta[HasPPU]) = "Sí", 1, 0),
1
)
4. En el objeto visual de tabla, agregue las columnas Custono, SurveyWave. Agregue FlagSelector[FlagName] en la segmentación. y arrastre la medida 'FlagFilterMeasure' en el filtro de nivel visual y establezca el valor ='1'.
5. Consulte el ajuste de salida y el archivo PBIX adjunto.
vdineshya_1-1750076655979.png

Si esta información es útil, por favor "Acéptalo como una solución" y dar un "Felicitaciones" para ayudar a otros miembros de la comunidad a resolver problemas similares de manera más eficiente.
Gracias.

Syndicate_Admin
Administrator
Administrator

@Radz2707 ,

Gracias por ponerse en contacto con el Foro de la comunidad de Microsoft.

Proporcione datos de muestra que cubran su problema o pregunta por completo, en un formato utilizable (no como una captura de pantalla).
No incluyas información confidencial. No incluya nada que no esté relacionado con el problema o la pregunta.
Muestre el resultado esperado en función de los datos de muestra que proporcionó.

Gracias

@Radz2707 ,

No hemos tenido noticias suyas sobre la última respuesta y solo estábamos revisando para ver, proporcione datos de muestra y, si tiene alguna consulta adicional, háganoslo saber.

Gracias.

Syndicate_Admin
Administrator
Administrator

@Radz2707

¿Qué significa esto?

P.S. I can't really unpivot the data as there are 15columns . 

Sería más fácil para cualquiera proporcionar una solución más factible si hubiera proporcionado una muestra de datos que no tienen por qué ser confidenciales, sino que realmente representan los datos reales y el resultado esperado de ellos. Asegúrese de que podamos copiarlo y pegarlo fácilmente.

Syndicate_Admin
Administrator
Administrator

Hola Radz2707,

Intenté implementar una solución basada en su publicación original. Por favor, compruebe el siguiente archivo pbix.
Creación de un filtro basado en columns.pbix

Si esta respuesta ayudó a resolver su problema, considere hacer clic en "Aceptar como solución" para que otros también puedan beneficiarse. Y si lo ha encontrado útil, siempre se agradece un rápido "Felicitaciones", ¡gracias!

Saludos

Maruthi

LinkedIn - http://www.linkedin.com/in/maruthi-siva-prasad/

Che - Maruti Siva Prasad - (@மருதிஸ்ப்) / K

Syndicate_Admin
Administrator
Administrator

¿Podría proporcionar algunos datos de muestra (no solo los encabezados) y el resultado esperado?

Syndicate_Admin
Administrator
Administrator

Hola

No entiendo a qué te refieres con " Realmente no puedo anular la dinamización de los datos ya que hay 15 columnas". ¿Por qué no se puede despivotar?

Syndicate_Admin
Administrator
Administrator

Generado por IA

🛠️ Esquema de la solución (sin despivotar)

  1. Crear una tabla desconectada para los indicadores

Defina manualmente una tabla que enumere todos los nombres de columna de marca.

Opción 1: Usar DAX para crearlo

Selector de bandera =

DATATABLE(

"NombreDeBandera", CADENA,

{

{"EsCiudadano"},

{"HasPolicy"},

{"HasPro"},

{"HasPremium"},

{"HasPPU"}

}

)

O créelo en Power Query si lo prefiere.

  1. Creación de una medida para filtrar en función de la marca seleccionada

Este es el truco: escriba una medida que compruebe la marca seleccionada y filtre las filas en consecuencia.

SelectedFlagFilter =

VAR SelectedFlag = SELECTEDVALUE(FlagSelector[FlagName])

DEVOLUCIÓN

INTERRUPTOR(

VERDADERO(),

SelectedFlag = "IsCitizen", CALCULATE(COUNTROWS(SurveyData), SurveyData[IsCitizen] = "Yes"),

SelectedFlag = "HasPolicy", CALCULATE(COUNTROWS(SurveyData), SurveyData[HasPolicy] = "Yes"),

SelectedFlag = "HasPro", CALCULATE(COUNTROWS(SurveyData), SurveyData[HasPro] = "Sí"),

SelectedFlag = "HasPremium", CALCULATE(COUNTROWS(SurveyData), SurveyData[HasPremium] = "Yes"),

SelectedFlag = "HasPPU", CALCULATE(COUNTROWS(SurveyData), SurveyData[HasPPU] = "Sí"),

EN BLANCO()

)

Esa medida le brinda resultados dinámicos: también puede usar una versión que devuelva 1/0 (VERDADERO/FALSO) para usarla como filtro visual.

  1. Úsalo como filtro de nivel visual

Para filtrar objetos visuales en función de la marca seleccionada:

  • Cree una medida booleana:

ShowRow =

VAR SelectedFlag = SELECTEDVALUE(FlagSelector[FlagName])

DEVOLUCIÓN

INTERRUPTOR(

VERDADERO(),

SelectedFlag = "IsCitizen", SurveyData[IsCitizen] = "Sí",

SelectedFlag = "HasPolicy", SurveyData[HasPolicy] = "Sí",

SelectedFlag = "HasPro", SurveyData[HasPro] = "Sí",

SelectedFlag = "HasPremium", SurveyData[HasPremium] = "Sí",

SelectedFlag = "HasPPU", SurveyData[HasPPU] = "Sí",

VERDADERO()

)

A continuación, arrastre esta medida al panel de filtro de los objetos visuales y establézcala en TRUE.

🔄 Resultado

Ahora, la segmentación de datos muestra:

IsCiudadano | HasPolicy | HasPro | HasPremium | HasPPU

Y seleccionando, por ejemplo, HasPro filtra dinámicamente sus imágenes para mostrar solo a los clientes dónde HasPro = "Sí", sin despivotar o reestructurar su modelo de datos.

⚠️ Notas

  • Este método solo admite 1 selección a la vez. Para la selección múltiple, se necesita una lógica más compleja (por ejemplo, usando IN).
  • Cuantas más marcas tenga, más largo será el SWITCH: podría considerar administrarlo a través de una tabla auxiliar y una relación en modelos más avanzados.

Helpful resources

Announcements
June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors