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

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
Syndicate_Admin
Administrator
Administrator

Refactorización de una dimensión de copo de nieve que combina las ramas principales de una oficina

Hola amigos,

Tengo un pequeño problema para el que tengo una solución, pero no creo que sea una solución óptima, y no estoy seguro de los términos correctos para buscar una mejor solución, así que espero que pueda ayudar.

Básicamente, tenemos una estructura donde los pedidos se dividen en diferentes oficinas, y hemos dividido los pedidos en una ubicación de envío de dimensión y una ubicación de recepción de dimensión.

Luego tenemos una rama principal de dimensiones que luego está vinculada a cada una de estas dimensiones de ubicación, por lo que tenemos un solo filtro que nos puede dar: todas las órdenes de envío de hechos enviadas por la ubicación de envío de dimensiones X y recibidas por cualquier ubicación, y todas las órdenes de recepción de hechos recibidas por la ubicación X y enviadas por cualquier ubicación.

Esto me parece una preocupación visual muy final para colocar en el modelo, y significa que si tengo otras tablas de hechos que tienen ambas ubicaciones en ellas, y me uno a ambas, entonces se filtrará solo a la misma rama principal de dimensión para enviar y recibir.

Esto también significa que estamos almacenando la rama principal tanto en las ubicaciones de dimensión como en la rama principal de dimensión , ya que desean poder obtener esas ramas principales para informar desde dónde se han enviado y recibido los pedidos, lo que significa una duplicación de datos, y se siente problemático.

Siento que debería tener una sucursal principal de envío de Dimenion y una sucursal principal receptora de dimensión, pero los analistas están presionando por el filtro único para ambas ubicaciones.

¿Hay alguna buena manera de evitar esto? ¿Tiene una tercera rama principal de filtro para esto? No puedo pensar en una forma de obtener un control deslizante y un solo parámetro para filtrar dos dimensiones si divido la rama principal de dimensión en dos.

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Hi AndrewTobin

La mejor práctica para este tipo de problema común es utilizar una técnica llamada "relaciones de juego de roles".

Crear una tabla de dimensiones combinada denominada DimLocation con

  • LocationID
  • Nombre de la sucursal
  • Ciudad sucursal
  • Nombre del padre

La caja una tabla combinada de Hechos llama a Hechos con

  • SendingLocationID
  • RecibirLocationID
  • OrderQty
  • Llamadas telefónicas

A continuación, agregue dos relaciones inactivas:

  • DimLocation[LocationID] 1:M Hechos[SendingLocationID]
  • DimLocation[LocationID] 1:M Hechos[ReceivingLocationID]

Luego agregue 4 medidas: -

Cantidad enviada =

CALCULAR(

SUM(Hechos[OrderTty]),

USERELATIONSHIP(DimLocation[LocationID], Facts[SendingLocationID]]))

Llamadas enviadas =

CALCULAR(

SUM(Hechos[PhoneCalsl]),

USERELATIONSHIP(DimLocation[LocationID], Facts[SendingLocationID]]))

Cantidad recibida =

CALCULAR(

SUM(Hechos[OrderTty]),

USERELATIONSHIP(DimLocation[LocationID], Facts[ReceivingLocationID]]))

Llamadas recibidas =

CALCULAR(

SUM(Hechos[PhoneCalsl]),

USERELATIONSHIP(DimLocation[LocationID], Facts[ReceivingLocationID]]))

A continuación, oculte todas las columnas de hechos para obligar al usuario a utilizar las medidas de juego de roles.

Para crear un informe enviado

  • Arrastre un objeto visual de tabla a un lienzo de informe en blanco y arrastre
  • Nombre principal, Nombre de sucursal, Cantidad enviada, Llamadas enviadas

Para crear un informe de recepción

  • Arrastre un objeto visual de tabla a un lienzo de informe en blanco y arrastre
  • Nombre del padre, Nombre de la sucursal, Cantidad recibida, Llamadas recibidas

Lo sentimos, este ejemplo usa fechas y no ubicaciones, pero el principio y la lógica del "juego de roles" es exactamente el mismo.
Haga clic aquí para descargar un ejemplo

Gracias por buscar ayuda.

Puse mucho esfuerzo para ayudarte, ahora por favor ayúdame rápidamente dando felicitaciones.

Remeber somos voluntarios no remunerados y estamos aquí para entrenarlo con habilidades y técnicas de Power BI y DAX, no para hacer el trabajo de los usuarios por ellos. Por lo tanto, haga clic en el pulgar hacia arriba y acepte como botón de solución.

Si le das a alguien un pescado, solo le das una comida, pero si le enseñas a pescar, entonces puede alimentarse y enseñar a otros para toda la vida. Prefiero enseñar a los miembros en este foro técnicas en lugar de dar soluciones completas y hacer su trabajo. A continuación, puede adaptar la técnica para su solución, aprender algunas habilidades de DAX para la próxima vez y pronto convertirse en un superusuario de Power BI como yo.

Una pregunta por boleto, por favor. Si necesita extender su solicitud, por favor levante un nuevo boleto.

Obtendrá una respuesta más rápida y cada solucionador voluntario recibirá los elogios que se merecen. ¡Gracias!



Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

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

Top Solution Authors