Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola
Tengo un problema con mi tabla de dimensiones: mi tabla de empresa es un SCD. Tiene algunos campos que están cambiando en 2022. Así que tengo dos versiones de mi tabla de la compañía: Coca cola Type está cambiando de "Soda" a "Juice" en la columna Tipo.
En mi informe PBI, tengo 2 rebanadoras con:
¿Cómo puedo administrar mis tablas para que cuando seleccione 2021 & Soda en mis 2 rebanadoras, pueda ver los datos de Coca Cola en la categoría Soda?
y cuando selecciono 2022, & Juice, puedo ver los datos de Coca cola en la categoría Juice ?
Tenga en cuenta que tengo muchas tablas de hechos como la tabla de precios (alrededor de 20 tablas de hechos como esta)
Company2021 (tabla de dimensiones que es un SCD que cambia en 2022)
Índice | Nombre | Type |
Coca_Index | Coca Cola | Soda |
Pepsi_index | Pepsi | Soda |
Orange_Index | Zumo de naranja | Jugo |
Empresa2022
Índice | Nombre | Type |
Coca_Index | Coca Cola | Jugo |
Pepsi_index | Pepsi | Soda |
Orange_Index | Zumo de naranja | Jugo |
Precio (tabla de hechos)
Type | Precio | Date |
Coca_Index | 2.50 | 2021 |
Pepsi_index | 2.50 | 2021 |
Orange_index | 2 | 2021 |
Coca_Index | 3 | 2022 |
Pepsi_index | 3 | 2022 |
Orange_index | 2 | 2021 |
Fecha (tabla de dimensiones)
Date | índice |
2021 | 1 |
2022 | 2 |
Lo que quiero al final es esto:
Solved! Go to Solution.
Ok, hay una serie de problemas que necesitan revisión. En primer lugar, su modelo está configurado con tablas de dimensiones vinculadas a través de relaciones de muchos a muchos a la tabla de precios, lo que no se recomienda. He creado nuevas tablas de dimensiones para empresa y año para permitir relaciones unidireccionales de uno a otro. El modelo se ve de la siguiente manera:
(No estoy muy seguro de cómo los semestres son relevantes dado que la granularidad de las tablas de precios está en un nivel de año)
Para filtrar la segmentación de datos de tipo, necesita utilizar la siguiente medida como filtro en la segmentación de datos:
Filter Years =
COUNTROWS(FILTER(Ref_Company, Ref_Company[Date] IN VALUES('Year'[Date])))
Agregue la medida al panel de filtro de la segmentación de datos y establezca el valor en mayor o igual a 1:
Para asegurarse de que la tabla de precios responde a la segmentación de datos Tipo, cree la siguiente medida para agregar el objeto visual de la tabla de precios y establezca el valor en mayor o igual a 1:
FIlter Price =
VAR _Type = SUMMARIZE(Ref_Company,Ref_Company[Date],DCompany[Index])
VAR _Price = SUMMARIZE('Price', 'Price'[Date], 'Price'[Index])
RETURN
COUNTROWS(INTERSECT(_Price, _Type))
He adjuntado el archivo PBIX de ejemplo
Intente agregar esta medida como filtro en el panel de filtros para la segmentación de datos Tipo y establezca el valor en mayor o igual a 1:
FILTRO =
COUNTROWS (RELACIONADOTABLE(Precio))
Hola @PaulDBrown, no funciona, ¿lo has probado en mi archivo pbix?
https://www.dropbox.com/s/koudtjdkjhl869d/Slicer%20with%20a%20SCD.pbix?dl=0
(No puedo subir .pbix directamente en el foro, no sé por qué).
Ok, hay una serie de problemas que necesitan revisión. En primer lugar, su modelo está configurado con tablas de dimensiones vinculadas a través de relaciones de muchos a muchos a la tabla de precios, lo que no se recomienda. He creado nuevas tablas de dimensiones para empresa y año para permitir relaciones unidireccionales de uno a otro. El modelo se ve de la siguiente manera:
(No estoy muy seguro de cómo los semestres son relevantes dado que la granularidad de las tablas de precios está en un nivel de año)
Para filtrar la segmentación de datos de tipo, necesita utilizar la siguiente medida como filtro en la segmentación de datos:
Filter Years =
COUNTROWS(FILTER(Ref_Company, Ref_Company[Date] IN VALUES('Year'[Date])))
Agregue la medida al panel de filtro de la segmentación de datos y establezca el valor en mayor o igual a 1:
Para asegurarse de que la tabla de precios responde a la segmentación de datos Tipo, cree la siguiente medida para agregar el objeto visual de la tabla de precios y establezca el valor en mayor o igual a 1:
FIlter Price =
VAR _Type = SUMMARIZE(Ref_Company,Ref_Company[Date],DCompany[Index])
VAR _Price = SUMMARIZE('Price', 'Price'[Date], 'Price'[Index])
RETURN
COUNTROWS(INTERSECT(_Price, _Type))
He adjuntado el archivo PBIX de ejemplo
Hola @PaulDBrown, su solución parece funcionar, pero tengo varias preguntas para usted.
1. ¿Conoces la diferencia entre tu medida?
COUNTROWS(FILTER(Ref_Company, Ref_Company[Date] IN VALUES('Year'[Date]))
y lo que intenté:
COUNTROWS(FILTER(Ref_Company, Ref_Company[Date] = SELECTEDVALUE(Year[Date]))
Porque no funciona con lo que probé: con mis datos completos y la 2ª medida, a veces funciona y a veces no para diferentes KPI, pero no puedo explicar por qué. (Cuando digo que no funciona, quiero decir que mi segmentación de datos no muestra los diferentes valores en Tipo)
2. ¿Podría explicar cuándo necesito crear el "Precio de filtro" de mesure? Porque ahora parece funcionar y no sé en qué caso habría un problema sin esta medida.
¡Muchas gracias de nuevo por su ayuda!
Me atrevería a aventurar que el problema al que te enfrentabas probablemente se debía al modelo en sí y a las relaciones de muchos a muchos y los filtros bidireccionales.
Necesita la medida [Precio de filtro] porque la tabla de Ref_company en el nuevo modelo no puede filtrar directamente la tabla de precios (ya que está en el lado de muchos en una relación de una sola dirección). Por lo tanto, necesita una forma de filtrar la tabla de precios en función de la selección Tipo en la tabla Ref-Company, que proporciona la medida [Filtrar precio]. ¿Entender?
En ella @bastienlin ,
Consulte mi archivo pbix para ver si le ayuda.
Agregue columnas de año para cada una de las dos tablas.
Haga clic en Inicio>>Transformar datos>>Transformar datos>>agregar columna>> Columna personalizada.
A continuación, añada las dos tablas.
A continuación, cree la relación entre la nueva tabla de apéndices y la tabla de índices.
Si he entendido mal su significado, proporcione su archivo pbix sin información de privacidad y la salida deseada.
Saludos
Equipo de apoyo a la comunidad _ Polly
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
@v-polly-msft, @amitchandak Aquí está mi archivo PBI con los enlaces correctos de las tablas.
https://www.dropbox.com/s/koudtjdkjhl869d/Slicer%20with%20a%20SCD.pbix?dl=0
(No puedo subir .pbix directamente en el foro, no sé por qué).
Tenga en cuenta que la tabla de Ref_Company se puede dividir en dos tablas dependiendo del año (como lo hizo usted) si es necesario. Mi tabla no tenía una columna de fecha antes, pero la agregué para poder tener los cambios entre 2021 y 2022 en la columna tipo de Coca Cola.
Lo que quiero es que mi segmentación de datos (a la izquierda) filtre mi segmentación de datos tipo (a la derecha).
Cuando seleccione 2021, solo veré Coca cola en el tipo Soda, y cuando seleccione 2022, solo veré Coca cola en el Tipo de jugo.
La fecha que tengo en mi rebanadora tiene que ser la fecha de la tabla de Ref_Date, porque tengo muchas tablas de hechos.
En realidad, podemos ver Coca Cola en ambas categorías de tipos, sin importar la fecha que elija...
¡Gracias de nuevo por su ayuda!
En ella @bastienlin ,
Por favor, pruébalo.
Crear relación entre ref_company y ref_date.
Saludos
Equipo de apoyo a la comunidad _ Polly
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Hola @v-polly-msft, no sé si tu solución funciona, porque cuando borro la relación entre ref_company y ref_table, también funciona...
Pero no puedo encontrar por qué funciona. Ahora tengo una versión que no funciona y una versión que funciona, pero no puedo explicar la diferencia entre estas dos.
¡Gracias de nuevo por su ayuda!
Hay @Bastienlin_ ,
¿Tiene sentido eso? Si es así, marque amablemente mi respuesta como la solución para cerrar el caso o compartirlo de la manera, por favor. Gracias de antemano.
Saludos
Equipo de apoyo a la comunidad _ Polly
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
@v-polly-msft En realidad no, ¿puedes intentarlo de nuevo descargando de nuevo el archivo? o en otra página? Porque cuando trato de hacerlo, no funciona. Puedes ver en mi nuevo archivo en el enlace que tengo 2 páginas, una que funciona y otra que no.
(https://www.dropbox.com/s/koudtjdkjhl869d/Slicer%20with%20a%20SCD.pbix?dl=0
aquí está el enlace de nuevo)
Hay @Bastienlin_ ,
He encontrado el error. La página1 funciona bien porque las segmentaciones de datos están en una tabla. Y la página2 no puede funcionar bien porque has creado la relación equivocada. Está filtrando los datos por año, por lo que debe crear una relación con los datos.
Por favor, compruébelo cuidadosamente.
Saludos
Equipo de apoyo a la comunidad _ Polly
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Hola @v-polly-msft
En mi caso, necesitamos una relación entre ref_company y las tablas de precios con índice y creo que su solución no funciona en este caso.
Crear la medida que Pablo sugirió parece funcionar en mi caso (ver arriba).
¡Gracias de nuevo por su ayuda!
@bastienlin , Hay un buen video de Guyinacube, mira si eso ayuda
SCD
Guyinacube - https://www.youtube.com/watch?v=tKeaQpWynzg
https://www.youtube.com/watch?v=E1ZABKBpkdg
https://www.zartis.com/scd-implementation-with-temporal-tables-in-power-bi/
User | Count |
---|---|
2 | |
2 | |
1 | |
1 | |
1 |