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

Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started

Reply
Syndicate_Admin
Administrator
Administrator

Necesita ayuda con la lógica de filtrado avanzada en el modelo de datos de Power BI

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:**

  1. **Tabla de Transacciones**:

- 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ñoMesDíaSociosEntityHashKeyTransactionHashKey (Clave de TransacciónHash)Cantidad de ingresos
20243210020030025.27
202432100201301183.2
202433102200302173.13
20243310320130313.8

  1. **Tabla EntityAttributes**:

- 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.

EntityHashKeyAttributeGroupNameCategoríaAtributo
200AMCGroup1Categoría AMC
200NXTGroup2Categoría AMC
201YLMGroup1Categoría AMC
201UxYTGroup2Categoría UYT
202POPGroup1Categoría POP
203UYTGroup7Categoría UYT

  1. **Tabla de Entidades**:

- 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!

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

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)

vjingzhanmsft_0-1709704439762.png

vjingzhanmsft_1-1709704460596.png

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!

Helpful resources

Announcements
Europe Fabric Conference

Europe’s largest Microsoft Fabric Community Conference

Join the community in Stockholm for expert Microsoft Fabric learning including a very exciting keynote from Arun Ulag, Corporate Vice President, Azure Data.

AugPowerBI_Carousel

Power BI Monthly Update - August 2024

Check out the August 2024 Power BI update to learn about new features.

August Carousel

Fabric Community Update - August 2024

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

Top Solution Authors
Top Kudoed Authors