cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Soy nuevo en DAX. ¿Quieres saber cómo obtener las mejores ventas y las mejores ventas anteriores?

 
7 REPLIES 7
Syndicate_Admin
Administrator
Administrator

Hola @hsk ,

no estoy seguro de si entiendo correctamente ya que también hay un cuadro 😞 rojo

Sin embargo, estos son mis datos de muestra:

image.png

Creo tres medidas que permiten crear estos tres elementos visuales de tarjeta:
image.png
Estas son las medidas:
Top 1 de venta:

Top 1 sale = 
var top1salserows =
    SELECTCOLUMNS(
        TOPN(
            1
            , ALLSELECTED( 'Sales Table' )
            , 'Sales Table'[sales]
            , DESC
        )
        , "top" ,  'Sales Table'[sales]
    )
return
top1salserows

2ª mejor venta:

Top 2 sale = 
var top2salserows =
    minx(
        TOPN(
            2
            , ALLSELECTED( 'Sales Table' )
            , 'Sales Table'[sales]
            , DESC
        )
        , 'Sales Table'[sales]
    )
return
top2salserows

Mejor venta anterior:

previous bestsale = 
var top3sales = 
    SUMMARIZE(
        TOPN( 3 , ALLSELECTED( 'Sales Table' ) , CALCULATE(SUM( 'Sales Table'[sales] ) ) , desc )
        , 'Sales Table'[date]
        , 'Sales Table'[sales]
    )
var previousbestsales =
    SELECTCOLUMNS(
        OFFSET( -1, OFFSET( -1, top3sales , ORDERBY( [date] , desc ) , KEEP) , ORDERBY( [date] ) )
        , "v" , [sales]
    )
return
previousbestsales

¡Con suerte, esto proporciona lo que está buscando!

Saludos

Tom

¡Gracias! Tom

Esto resolvió el problema en gran medida.

Ahora hay que calcular las fechas correspondientes. No se puede obtener la "mejor fecha de venta anterior".

Hola @hsk ,

Aquí están las medidas para calcular las fechas.

Top 1 mejores fechas de ventas:

Top 1 sales date = 
var top1salserows =
    SELECTCOLUMNS(
        TOPN(
            1
            , ALLSELECTED( 'Sales Table' )
            , 'Sales Table'[sales]
            , DESC
        )
        , "topdate" ,  'Sales Table'[date]
    )
return
top1salserows


Top 2 fecha de ventas:

Top 2 sales date = 
var top2salserows =
    SELECTCOLUMNS(
        TOPN(
            1
            , TOPN(
                2
                , ALLSELECTED( 'Sales Table' )
                , 'Sales Table'[sales]
                , DESC
            )
            , 'Sales Table'[sales]
            , ASC
        )
        , "date"  , [date]
    )
return
top2salserows


Mejor fecha de venta anterior:

previous bestsales date = 
var top1salesdate = 
    SELECTCOLUMNS(
        TOPN( 1 , ALLSELECTED( 'Sales Table' ) , CALCULATE(SUM( 'Sales Table'[sales] ) ) , desc )
        , [date]
    )
var prevSales =
    SELECTCOLUMNS(
        TOPN(
            1
            , filter(
                allselected( 'sales table' )
                , 'sales table'[date] < top1salesdate
            )
            , [sales]
            , DESC
        )
        , "date" , [date]
    )
return
prevSales

El informe ahora se ve así:
image.png

Con suerte, esto proporciona lo que está buscando.

Saludos

Tom

Muchas gracias Tom.

Hola @hsk ,

Si una o ambas publicaciones responden a tu pregunta, marca una o ambas publicaciones como respuesta. Esto ayudará a otros usuarios a encontrar una solución más rápidamente.

Saludos
Tom

Syndicate_Admin
Administrator
Administrator

De acuerdo.

Intentaré explicarlo con un ejemplo.

hsk_8-1671538093480.png

Lo que me interesa son los cuatro resultados en cajas azules.

Syndicate_Admin
Administrator
Administrator

Hola @hsk ,

El dominio de DAX comienza con una descripción clara de lo que desea lograr, lo que debe calcularse.

Esto: "... mejores ventas y mejores ventas anteriores ..."

No revela nada con respecto a los requisitos comerciales / reglas comerciales, siempre que proporcione más contexto, lo que define "mejor" y "mejor anterior".

Saludos
Tom

Helpful resources

Announcements
PBI Sept Update Carousel

Power BI September 2023 Update

Take a look at the September 2023 Power BI update to learn more.

Learn Live

Learn Live: Event Series

Join Microsoft Reactor and learn from developers.

Top Solution Authors