Filtrar la dimensión dos por columna en la dimensión uno

Un usuario Pregunto ✅

cturner

He estado buscando en Google esto hoy, y no puedo obtener claridad sobre el enfoque correcto:

Tengo una base de datos de esquema en estrella con múltiples hechos y múltiples dimensiones. Cada hecho tiene claves foráneas para cada dimensión, correspondientes a claves primarias en la tabla de dimensiones. Agrupamos los datos en las diversas tablas de hechos basándonos únicamente en estas dimensiones.

Se nos ha pedido que limitemos el contenido de la segmentación para la dimensión 2 mediante nuestra selección de la segmentación en la dimensión 1. No podemos agregar un FK para la dimensión 1 a la dimensión 2 para unirlos, ya que crea ambigüedad y powerbi se niega a unirse. ellos.

para la dimensión 1, tenemos id, business_name y type

para la dimensión 2, tenemos las columnas id, product_name y type

la columna 1 es un numero entero

las columnas 2 y 3 son texto

solo la columna 1 es única en ambas tablas.

sin una relación entre las tablas, ¿cuál es el patrón dax adecuado para devolver solo las filas en la dimensión 2 que comparten el mismo valor para el tipo de columna que las filas seleccionadas por la segmentación para la dimensión 1?

Gracias.


@cturner escribió:

He estado buscando en Google esto hoy, y no puedo obtener claridad sobre el enfoque correcto:

Tengo una base de datos de esquema en estrella con múltiples hechos y múltiples dimensiones. Cada hecho tiene claves foráneas para cada dimensión, correspondientes a claves primarias en la tabla de dimensiones. Agrupamos los datos en las diversas tablas de hechos basándonos únicamente en estas dimensiones.

Se nos ha pedido que limitemos el contenido de la segmentación para la dimensión 2 mediante nuestra selección de la segmentación en la dimensión 1. No podemos agregar un FK para la dimensión 1 a la dimensión 2 para unirlos, ya que crea ambigüedad y powerbi se niega a unirse. ellos.

para la dimensión 1, tenemos id, business_name y type

para la dimensión 2, tenemos las columnas id, product_name y type

la columna 1 es un numero entero

las columnas 2 y 3 son texto

solo la columna 1 es única en ambas tablas.

sin una relación entre las tablas, ¿cuál es el patrón dax adecuado para devolver solo las filas en la dimensión 2 que comparten el mismo valor para el tipo de columna que las filas seleccionadas por la segmentación para la dimensión 1?

Gracias.


@cuturner

Es posible que necesite una medida como la siguiente. Consulte el archivo pbix adjunto.

isExistsInTable1 = IF(MAX(Table2[id]) in VALUES(Table1[id]),1,BLANK())

Captura.PNG

Captura.PNG

cturner

En respuesta a Eric_Zhang

Esto es útil y puede contener las semillas de un enfoque de trabajo. Sin embargo, no quiero usar ID para la condición. Quiero usar el tipo:

tabla 1

id, nombre comercial, tipo

1,bnombre1,tipo1

2,bnombre2,tipo2

3,bnombre3,tipo1

4,bnombre4,tipo2

Tabla 2

id, nombre de producto, tipo

1,pname1,tipo1

2,pname2,type2

3,pname3,type1

4,pname4,type2

Slicer1 para type en la tabla 1 contiene los valores type1,type 2.

Slicer2 para productname en la tabla 2 contiene los valores pname1-pname4.

Quiero que el tipo seleccionado en la segmentación 1 determine el contenido de la segmentación 2

tipo 1 -> pname1, pname3

tipo 2 -> pname2,pname4

Gracias.

En respuesta a cturner


@cturner escribió:

Esto es útil y puede contener las semillas de un enfoque de trabajo. Sin embargo, no quiero usar ID para la condición. Quiero usar el tipo:

tabla 1

id, nombre comercial, tipo

1,bnombre1,tipo1

2,bnombre2,tipo2

3,bnombre3,tipo1

4,bnombre4,tipo2

Tabla 2

id, nombre de producto, tipo

1,pname1,tipo1

2,pname2,type2

3,pname3,type1

4,pname4,type2

Slicer1 para type en la tabla 1 contiene los valores type1,type 2.

Slicer2 para productname en la tabla 2 contiene los valores pname1-pname4.

Quiero que el tipo seleccionado en la segmentación 1 determine el contenido de la segmentación 2

tipo 1 -> pname1,pname3

tipo 2 -> pname2,pname4

Gracias.


@cuturner

Luego cree una medida de la misma manera con el tipo de columna.

isExistsInTable1 = IF(LASTNONBLANK(Table2[type],"") in VALUES(Table1[type]),1,BLANK())

cturner

En respuesta a Eric_Zhang

@Eric_Zhang muchas gracias, esto es muy útil.

¿Existe un enfoque similar que funcione para selecciones múltiples/todas en la segmentación?

En respuesta a cturner


@cturner escribió:

@Eric_Zhang muchas gracias, esto es muy útil.

¿Existe un enfoque similar que funcione para selecciones múltiples/todas en la segmentación?


@cuturner

La medida funcionará para múltiples secciones en una rebanadora, ¿tienes algún problema?

Captura.PNG

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *