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

Grow your Fabric skills and prepare for the DP-600 certification exam by completing the latest Microsoft Fabric challenge.

Reply
mattramirez2020
Helper II
Helper II

Ventas y devoluciones en una tabla

¡Hola! Tengo un conjunto de datos con cada fila que representa una sola venta. Cada fila tiene una fecha de venta y una fecha de devolución (si corresponde). Realmente estoy luchando para generar una medida de ventas que genere las ventas de un mes y las rentabilidades que ocurrieron en ese mismo mes (marzo de 2020, por ejemplo). He podido hacer que esto funcione duplicando la mesa y mostrando las ventas en una mesa y las devoluciones en otra, pero siento que tiene que haber una mejor manera.

Cualquier ayuda sería apreciada!!!

Tabla de Ventas y Devoluciones:

Purchase_IDPurchase_DateDiscount_PriceReturn_DateCustomer_ID
1001/1/2015003/1/201
1011/20/201900 2
1023/1/2074004/1/203

Medida deseada: Ventas netas (cualquier cosa dentro del rango de filtros seleccionado actualmente, por ejemplo, marzo de 2020 menos devoluciones de marzo de 2020) 7400-1500-5900.

Me siento como un idiota por no ser capaz de hacer que algo tan simple funcione, pero puede que esté pensando demasiado. Todo lo que hago sólo suma por fecha de compra, independientemente de cuándo se devolvió la devolución.

5 REPLIES 5
jdbuchanan71
Super User
Super User

@mattramirez2020

La idea de lo que está tratando de hacer es bastante directa, es el cómo que es un poco difícil al principio. Necesitará una tabla Dates en el modelo, esta es una tabla dedicada que contiene el calendario para que el modelo lo use. A continuación, vincule la tabla Sales a la tabla Dates mediante [fecha de pedido], esta es la relación principal. También se vincula mediante la fecha de devolución, esta es una relación inactiva secundaria.

A continuación, podemos usar la relación secundaria para calcular el importe de devolución.

jdbuchanan71_0-1594754187435.png

Comenzamos con una medida para sumar el precio.

Price = SUM ( Sales[Discount_Price] )

Luego escribimos una medida para calcular el precio de devolución y ahí es donde activamos la relación secundaria.

Return Amount = 
CALCULATE (
    [Price],
    USERELATIONSHIP ( Sales[Return_Date], Dates[Date] ),
    NOT ISBLANK ( Sales[Return_Date] )
)

A continuación, una medida para calcular la diferencia.

Total Amount = [Price] - [Return Amount]

jdbuchanan71_1-1594754340226.png

He adjuntado mi archivo de muestra para que lo mires.

@jdbuchanan71 Así que esto funcionó casi perfectamente excepto que me di cuenta de que estoy inflando las ventas y inflando las devoluciones porque no tengo en cuenta los intercambios correctamente. Me encantaría que sus comentarios sobre la mejor manera de manejar los intercambios si en todo es posible!!

En mi ejemplo a continuación, las ventas de mayo serían $4895, las ventas de junio serían de $0, la diferencia de cambio de junio sería de -$895.

Purchase_IDPurchase_dateDiscount_PriceReturn_DateExchange_Purchase_ID
1001/1/2015003/1/200
1011/20/201900 0
1023/1/2074004/1/200
1035/6/2028956/8/200
1045/6/202000 0
1056/8/202000

103

En este momento me da una salida que se agota correctamente, pero prefiero que sea así:

Básicamente lo más importante que estoy tratando de lograr a una manera de hacer referencia en ID 105 que es un intercambio de purchase_ID 103 que no incluye un $2895 en ventas y luego un $2000 en devoluciones, pero sólo un -$895 en la diferencia de cambio.

VentasDevuelve+IntercambiosVentas netas
Enero3400 3400
Febrero 0
Marzo74001500 5900
Abril 7400 -7400
Mayo4895 4895
Junio -895-895

@mattramirez2020

El problema es Ventas Netas es [Ventas] - [Devoluciones + Intercambios] excepto en Junio el monto es - por lo que haría Ventas Netas + 895
0 - ( -895) y eso es diferente del calc para abril. Verá que el comportamiento del signo de Ventas netas no coincide entre esos dos meses:

jdbuchanan71_0-1594849212115.png

Puedes engañarlo con dos nuevas medidas

Price no Exchanges = 
CALCULATE(
    SUM ( Sales[Discount_Price] )
    ,Sales[Exchange_Purchase_ID] = 0
)
Returns + Exchanges = 
VAR _ReturnNoExchange = 
    CALCULATE (
        SUM ( Sales[Discount_Price]),
        USERELATIONSHIP ( Sales[Return_Date], Dates[Date] ),
        NOT ISBLANK ( Sales[Return_Date] ),
        NOT Sales[Purchase_ID] IN VALUES ( Sales[Exchange_Purchase_ID] )
    )
VAR _ReturnWithExchange = 
    CALCULATE (
        SUM ( Sales[Discount_Price]),
        USERELATIONSHIP ( Sales[Return_Date], Dates[Date] ),
        NOT ISBLANK ( Sales[Return_Date] ),
        Sales[Purchase_ID] IN VALUES ( Sales[Exchange_Purchase_ID] )
    )
VAR _ExchangeFromReturn =  
    CALCULATE(
        SUM ( Sales[Discount_Price] )
        ,Sales[Exchange_Purchase_ID] <> 0
    )

RETURN _ReturnNoExchange + _ExchangeFromReturn - _ReturnWithExchange

Dejas el importe total como el [Precio] - [Devoluciones] regular y obtienes algo como esto:

jdbuchanan71_1-1594849440884.png

El resaltado verde solo muestra que el Total usa el Precio base + Devoluciones, pero no lo mostraría en su objeto visual, pero de nuevo, el signo para Apr y Jun no coinciden.

¿Qué tal si lo muestras en 3 cubos? Precio sin intercambios, devoluciones sin intercambios, intercambios. Entonces el total es A - B + C y al menos se ve más razonable:

jdbuchanan71_2-1594849946351.png

De todos modos, he adjuntado mi archivo de muestra actualizado, eche un vistazo.

@jdbuchanan71 ¡Esto funcionó! Así que me di cuenta de que etiquete mis columnas mal y causé un antamiento de confusión. Me gustan las devoluciones e intercambios que están en sus propias columnas y utilizan su último formato a continuación. Disculpas por la confusión pero te agradezco que la atrapes y toda tu ayuda. He modificado ligeramente y cambiado vuelve a ser negativo por lo que ahora las devoluciones y la diferencia de cambio ambos aparecen negativos y se añaden correctamente para la cantidad neta.

funcionó perfectamente! ¡Esto es genial! Gracias @jdbuchanan71

Helpful resources

Announcements
RTI Forums Carousel3

New forum boards available in Real-Time Intelligence.

Ask questions in Eventhouse and KQL, Eventstream, and Reflex.

MayPowerBICarousel1

Power BI Monthly Update - May 2024

Check out the May 2024 Power BI update to learn about new features.