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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

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
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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