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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Filtrar tablas de hechos mediante tablas de dimensiones inactivas

hola

He desmontado mi conjunto de datos para hacer que mi caso sea comprensible.

Tengo una relación entre la dimensión del producto y la dimensión de hecho. Pero esta relación es inactiva (en mi conjunto de datos original con un modelo complicado, no puedo conectar estas 2 tablas debido a relaciones ambiguas)

Error real del conjunto de datos:

klehar_2-1619447431538.png

klehar_1-1619447289349.png

Mi objetivo aquí es filtrar la tabla de ventas siguiente usando la columna de dimensión de producto utilizando una relación inactiva

klehar_0-1619447266067.png

¿Se puede hacer esto?

@amitchandak por favor, no envíe enlaces, si tiene una solución sólo entonces responda

9 REPLIES 9
Syndicate_Admin
Administrator
Administrator

@klehar

Crear una medida en la línea de

Filter using Userelationship =
COUNTROWS (
    CALCULATETABLE (
        VALUES ( Fact[ProductID] ),
        USERELATIONSHIP ( 'Dimension'[ProductID], Fact[ProductID] )
    )
)

o

Filter using TREATAS =
COUNTROWS ( TREATAS ( VALUES ( Dimension[ProductID] ), Fact[ProductID] ) )


Seleccione el objeto visual, agregue esta medida a los filtros del objeto visual en el panel de filtro y establezca el parámetro en "is 1".

¿También puede explicar lo que esto hace.

La sintaxis btw es incorrecta en algún lugar

@klehar

En cuanto a la sintaxis, ajuste las referencias de tabla y columna al modelo (por ejemplo, utilice Product ID en lugar de mi ProductID)

En cuanto a lo que hacen:

[Filtrar con userelationship]
1) CALCULATETABLE devuelve una tabla de valores únicos para el hecho[ProductID] basado en el filtro promulgado entre la tabla de dimensiones y la tabla de hechos utilizando userelationship

2) COUNTROWS devuelve el recuento por fila

[Filtrar usando Treatas]

1) TREATAS crea una relación virtual entre las columnas contenidas dentro de la expresión para devolver una tabla de Valores ProductID.

2) COUNTROWS devuelve el recuento por fila

Al agregar cualquiera de estas medidas al panel de filtro y establecer el parámetro como 1, el objeto visual se filtrará para mostrar solo los valores seleccionados en la segmentación por sectores.

Syndicate_Admin
Administrator
Administrator

Allí @klehar

Para poder utilizar la columna Producto como segmentación de datos en el modelo, debe agregar una columna Calculada (las segmentaciones de datos no aceptan medidas) a la tabla de hechos mediante la relación inactiva si existe. También puede usar Crossjoin para navegar entre tablas y crear la columna calculada.

Aquí hay un video que puede ayudar a resolver la ambigüedad si quieres

https://www.youtube.com/watch?v=x3m7qzsVJqQ

@aj1973 puede dar un código dax de ejemplo?

Syndicate_Admin
Administrator
Administrator

Sí, esto se puede hacer, pero tendrá que usar una medida explícita para ello (Esto es probablemente lo que ya está haciendo).

Ventas =
calcular (
suma ( hecho[ventas] ),
USERELATIONSHIP ( dimensión[ID de producto], ventas[ID de producto] )
)

*Para ayudar a reducir la complejidad y ambigüedad del modelo, trate de utilizar únicamente relaciones bidireccionales cuando sea absolutamente necesario. (En algún momento más fácil decirlo que hacerlo)

Si tiene varias medidas en el informe, cada una de ellas tendrá que aplicar el mismo patrón.

@MikeJohnsonZA No quiero calcular una medida para que el crossfilter y el userelationship no funcionen

Sólo quiero filtrar la tabla de ventas usando mi tabla de dimensiones sin una unión activa

Syndicate_Admin
Administrator
Administrator

Allí, @klehar

Por favor, corrígeme si entendí mal tu pregunta.

Si tiene una relación inactiva entre dos tablas, el uso de la función USERELATIONSHIP es una forma de crear una medida que se puede filtrar por una tabla de dimensiones.

Por favor, pruebe la siguiente medida.

Ventas =
CALCULAR (
SUM ( Fact[sales] ),
USERELATIONSHIP ( Hecho[ID de producto], Dimensión[ID de producto] )
)

Hola, mi nombre es Jihwan Kim.

Si este post ayuda, entonces considere aceptarlo como la solución para ayudar a otros miembros a encontrarlo más rápido, y dar un gran pulgar hacia arriba.

Linkedin: linkedin.com/in/jihwankim1975/

Twitter: twitter.com/Jihwan_JHKIM

@Jihwan_Kim, me temo que no se puede usar userelationship.

Pensé que podría serlo. Pero todo lo que intenta hacer es filtrar el hecho usando la tabla de dimensiones con una relación inactiva.

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!

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