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

Ejecución de precios en contexto de filtro con diferentes granularidades

Así que aquí está mi escenario de negocios:

  • He negociado precios para ciertos períodos a nivel de tipo de material
  • En función de la columna Prioridad de pedido, el tipo de material a utilizar se define en el nivel maestro de material superior

I_LOVE_POWER_BI_0-1653466550128.png

En este caso, el precio "Azúcar Tipo B" se mostrará en el Nivel Maestro de Material (resaltado en verde), debido al "1" en la prioridad del pedido.

Eso funcionó bien basado en esta MEDIDA:

Top Order Priortiy Price = 
VAR MinOrderPriority = MIN (Prices[Order Priority]) 
VAR Top1 = 
TOPN (
    1,
    VALUES ( Prices[Order Priority] ),
    [MinOrderPriority ],
    ASC
)
VAR Result = CALCULATE( [Material Price], Top1)
RETURN
Result

El siguiente paso, agrego un precio corriente. Repito el último precio negociado disponible cada mes hasta que esté disponible un nuevo precio negociado (para ponerlo en un gráfico de líneas, sin espacios en blanco). En un formato de tabla se ve así:

I_LOVE_POWER_BI_1-1653467047337.png

Sin embargo, como puede ver, el resultado resaltado en rojo no es lo que necesito. Mi objetivo es que el precio del tipo de material con la prioridad de pedido MIN siempre se muestre en el nivel Maestro de material. En este momento este no es el caso, porque el azúcar tipo B solo tiene un precio negociado en 2022-01, mientras que el azúcar tipo A ha negociado el precio en 2022-04, por lo tanto, a partir de 2022-04, la medida TOPN sobre Material Master mostrará el tipo A, debido al contexto de evaluación. Aquí la MEDIDA que utilicé:

Top Order Priority Price Running = 
VAR LastNonBlankDate =
    CALCULATE (
        MAX ('Calendar'[Year Month]),
        FILTER (
            ALL ( 'Calendar'[Year Month] ),
            'Calendar'[Year Month] <= MAX ( 'Calendar'[Year Month] )
            && [Top Order Priority Price] <> 0
        )
    )
RETURN
    CALCULATE (
        [Top Order Priority Price],
        FILTER (
            ALL ( 'Calendar'[Year Month] ), 
            'Calendar'[Year Month] = LastNonBlankDate
        )
    )

En mi mente, la solución no debería ser tan complicada, asumo que debería eliminar algún contexto de filtro o usar tablas virtuales en algún lugar.... Soy demasiado estúpido, supongo, no puedo producir un resultado que funcione después de muchas horas de fracaso.... También mi objetivo es usar una medida sin agregar una tabla física, para mantener las posibilidades de segmentación de datos dinámicas y reducir el almacenamiento. Una columna adicional que de alguna manera funcione estaría bien, por supuesto...

Aquí de nuevo mi resultado deseado solo en el nivel de Maestro de Material:

I_LOVE_POWER_BI_2-1653467705017.png

¡Muchas gracias por su amable apoyo!

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

¡Gracias! Ya lo resolví.

View solution in original post

2 REPLIES 2
Syndicate_Admin
Administrator
Administrator

@I_LOVE_POWER_BI ,

¿Podría por favor compartir su archivo pbix y recordar eliminar datos confidenciales?

Saludos

Lucien

Syndicate_Admin
Administrator
Administrator

¡Gracias! Ya lo resolví.

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.