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

Be 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

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
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.

Top Solution Authors
Top Kudoed Authors