March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Early bird discount ends December 31.
Register NowBe one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now
Hola a todos,
Estoy trabajando en un informe de Power BI y me enfrento a un reto con la implementación de la funcionalidad de filtro dinámico. A continuación, se muestra una descripción general de alto nivel de mi modelo de datos y el problema:
**Descripción general del modelo de datos:**
- Granularidad: Registros de transacciones individuales.
- Columnas de clave: TransactionDate (año, mes, día), PartnerID, EntityIDHashKey (representa entidades únicas), TransactionHashKey, RevenueAmount.
- Un PartnerID puede tener más de 1 EntityIDHashKey debajo.
Año | Mes | Día | Socios | EntityHashKey | TransactionHashKey (Clave de TransacciónHash) | Cantidad de ingresos |
2024 | 3 | 2 | 100 | 200 | 300 | 25.27 |
2024 | 3 | 2 | 100 | 201 | 301 | 183.2 |
2024 | 3 | 3 | 102 | 200 | 302 | 173.13 |
2024 | 3 | 3 | 103 | 201 | 303 | 13.8 |
- Granularidad: Nivel de atributo de las entidades.
- Columnas clave: EntityID, EntityIDHashKey, AttributeGroupName, AttributeCategory.
- Cada entidad puede tener 1 AttributeGroupName que se encuentra en solo 1 AttributeCategory o puede tener más de 1 AttributeGroupName que puede caer en más de 1 AttributeCategory.
EntityHashKey | AttributeGroupName | CategoríaAtributo |
200 | AMCGroup1 | Categoría AMC |
200 | NXTGroup2 | Categoría AMC |
201 | YLMGroup1 | Categoría AMC |
201 | UxYTGroup2 | Categoría UYT |
202 | POPGroup1 | Categoría POP |
203 | UYTGroup7 | Categoría UYT |
- Granularidad: Cada entidad única.
- Columnas de clave: EntityID, EntityHashKey, PartnerID.
Relaciones:
La tabla EntityAttributes se une a la tabla Entities en EntityIDHashKey (varios a uno)
La tabla de entidades se une a la tabla de transacciones en EntityIDHashKey (de uno a varios)
**Bloqueador de corriente/Requisito:**
Tenemos el filtro 'AttributeCategory' en el informe. El modelo de datos implica relaciones complejas en las que una entidad se puede vincular a varios atributos o grupos de atributos. El filtro debe admitir tanto el filtrado exclusivo como el inclusivo:
- **Filtrado exclusivo**: Cuando se selecciona una sola 'AttributeCategory', el informe debe mostrar datos relacionados solo con esa categoría, excluyendo las entidades asociadas con otras categorías, incluso si forman parte de la categoría seleccionada.
Por ejemplo: si el usuario selecciona "Categoría AMC", el informe debe filtrar los datos solo para EntityHashKey - 200 y excluir EntityHashKey 203 porque tiene "Categoría AMC" y "Categoría UYT".
- **Filtrado inclusivo**: Cuando se seleccionan varias 'AttributeCategories', el informe debe reflejar los datos de las entidades asociadas exclusivamente con esas categorías seleccionadas.
Por ejemplo: si el usuario selecciona "Categoría AMC" y "Categoría UYT", el informe debe filtrar los datos solo para EntityHashKey - 201. El mecanismo de filtrado debe excluir a otros porque también tienen otras categorías.
**Consideraciones adicionales:**
- Estamos usando un modelo semántico para el conjunto de datos de Power BI; por lo tanto, las columnas calculadas o las tablas calculadas y los filtros basados en medidas no son factibles.
Cualquier orientación o consejo sobre cómo abordar este problema sería muy apreciado. ¡Gracias!
Hola @drap
Puede crear una medida como un campo de filtro para lograr el resultado deseado. Hice una prueba con la medida siguiente. Funciona en un informe que se conecta en vivo a un modelo semántico.
Measure =
VAR _curEntity = SELECTEDVALUE('Transactions Table'[EntityHashKey])
VAR _selectCats = CALCULATETABLE(VALUES('EntityAttributes Table'[AttributeCategory]),ALLSELECTED('EntityAttributes Table'))
VAR _curCats = CALCULATETABLE(VALUES('EntityAttributes Table'[AttributeCategory]),ALL('EntityAttributes Table'),'EntityAttributes Table'[EntityHashKey] = _curEntity)
VAR _commonCats = INTERSECT(_curCats,_selectCats)
RETURN
IF(COUNTROWS(_commonCats)=COUNTROWS(_selectCats)&&COUNTROWS(_commonCats)=COUNTROWS(_curCats),1,0)
Espero que esto sea útil.
Saludos
Jing
Si esta publicación ayuda, acéptala como solución para ayudar a otros miembros a encontrarla. ¡Agradezco sus felicitaciones!
¡ Gracias Jing!
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.