The ultimate Microsoft Fabric, Power BI, Azure AI, and SQL learning event: Join us in Stockholm, September 24-27, 2024.
Save €200 with code MSCUST on top of early bird pricing!
Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Aquí tienes una versión reformulada de tu pregunta:
---
Hola a todos,
Tengo dos tablas, A y B, y estoy buscando filtrar la tabla B en función de la información de la tabla A.
**Tabla A**:
| parámetro | Valor |
| --------- | ----- |
| A | x |
| A | y |
| A | z |
| b | u |
| b | v |
| b | w |
| c | P |
| c | Pregunta |
| c | r |
| c | s |
**Tabla B**:
| ID | A | b | c | y más |
|----|---|---|---|----------|
| 1 | x | u | p | |
| 2 | x | u | q | |
| 3 | y | v | r | |
| 4 | y | w | m | |
| 5 | z | w | n | |
En la tabla A, la columna 'parámetro' enumera los nombres de las columnas de la tabla B que se deben usar para filtrar, junto con su 'valor' correspondiente. Dado que la tabla A se puede actualizar con más columnas de la tabla B, ¿es posible crear una consulta dinámica que filtre la tabla B en función de las columnas especificadas en la tabla A?
¿Es posible DAX.
¡Gracias de antemano!
Gracias por la respuesta de rajendraongole1 y asadmd93.
Hola @ashi7upt ,
¿Puedo preguntarle si ha resuelto este problema? Si se resuelve, comparta su solución y acéptela como solución o marque las respuestas útiles, será útil para otros miembros de la comunidad que tengan problemas similares al suyo para resolverlo más rápido . ¡Muchas gracias por su amable cooperación!
Saludos
Zhu
Equipo de apoyo a la comunidad
Si hay alguna publicación que ayude, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.
Si no entiendo sus necesidades o aún tiene problemas con él, no dude en hacérnoslo saber. ¡Muchas gracias!
Hola @v-linhuizh-msft
El problema no se resuelve.
Lo he probado pero este método no ayuda mucho.
El mayor problema con este enfoque es que los filtros provienen del lado del usuario y para cada nivel de acceso del usuario tienen diferentes filtros.
por ejemplo, para el usuario X, el parámetro de la tabla A tiene 3 valores, pero para el usuario Y, tiene 6 valores y no son fijos, estos pueden cambiar cuando el usuario lo desee.
Para que el filtrado sea dinámico en función de las combinaciones de la tabla C, puede modificar la medida DAX para incluir las combinaciones de la tabla C
TablaFiltradaB =
VAR DistinctParameters = VALUES(TablaA[parámetro])
Filtro VARB =
FILTRO(
Tabla B,
COUNTROWS(
FILTRO(
TablaA,
INTERRUPTOR(
VERDADERO(),
TablaA[parámetro] = "a" && TablaB[a] = TablaA[valor] && TablaA[parámetro] IN VALUES(TablaC[parámetro]), TRUE,
TablaA[parámetro] = "b" && TablaB[b] = TablaA[valor] && TablaA[parámetro] IN VALUES(TablaC[parámetro]), TRUE,
TablaA[parámetro] = "c" && TablaB[c] = TablaA[valor] && TablaA[parámetro] IN VALUES(TablaC[parámetro]), TRUE,
FALSO
)
)
) = COUNTROWS(Parámetros distintos)
)
DEVOLUCIÓN
FiltradoB
Esta modificación garantiza que las condiciones de filtrado se apliquen dinámicamente en función de las combinaciones almacenadas en la Tabla C.
Si mi post Ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente. Las felicitaciones siempre son bienvenidas.
Me ayuda a resolver el primer problema, pero no aborda el segundo.
TablaFiltradaB =
VAR DistinctParameters = VALUES(TablaA[parámetro])
Filtro VAR Condiciones =
ADDCOLUMNS(
DistinctParameters,
"Condición",
INTERRUPTOR(
VERDADERO(),
TablaA[parámetro] = "a", TablaB[a] = TablaA[valor],
TablaA[parámetro] = "b", TablaB[b] = TablaA[valor],
TablaA[parámetro] = "c", TablaB[c] = TablaA[valor],
FALSO
)
)
Filtro VARB =
FILTRO(
Tabla B,
COUNTROWS(
FILTRO(
FilterConditions,
[Condición]
)
) = COUNTROWS(Parámetros distintos)
)
DEVOLUCIÓN
FiltradoB
DistinctParameters: Esta variable obtiene los parámetros únicos de la Tabla A.
FilterConditions: Esta variable crea una tabla en la que cada fila contiene una condición basada en el parámetro. Por ejemplo, si el parámetro es "a", comprueba si TablaB[a] es igual al valor de la Tabla A.
FilteredB: Esta variable filtra la Tabla B aplicando las condiciones.
Avísame si eso funciona.
Si mi post Ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente. Las felicitaciones siempre son bienvenidas.
Hola @ashi7upt : puede crear una nueva tabla calculada en Power BI que filtre la tabla B en función de los criterios especificados en la tabla A.
TablaFiltradaB =
FILTRO(
Tabla B,
Filtrado de VARAa =
CALCULATETABLE(
TablaA,
TablaA[parámetro] = "a" && TablaB[a] = TablaA[valor] ||
TablaA[parámetro] = "b" && TablaB[b] = TablaA[valor] ||
TablaA[parámetro] = "c" && TablaB[c] = TablaA[valor]
)
DEVOLUCIÓN
COUNTROWS(FilteredA) = 3
)
Espero que funcione
Hola @rajendraongole1
Sí, podemos hacerlo de esta manera, pero tengo dos preocupaciones
1. Los filtros de los objetos visuales se rellenan a partir de un tercer valor de la tabla C a la tabla A
En la Tabla C se almacenaba la combinación de parámetros a aplicar.
2. En TablaA[parámetro] = "a" && TablaB[a] = TablaA[valor]
parte del DAX TableA[parámetro] = "a" se escribirá dinámicamente para cada entrada de parámetro distinta en
Cuadro A
¿Cómo podemos abordar ambas o alguna de estas cuestiones?
Saludos
Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.
Check out the August 2024 Power BI update to learn about new features.
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |