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

Get certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register 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
November Carousel

Fabric Community Update - November 2024

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

Live Sessions with Fabric DB

Be one of the first to start using Fabric Databases

Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.

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! Early Bird pricing ends December 9th.

Nov PBI Update Carousel

Power BI Monthly Update - November 2024

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

Top Solution Authors