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
Dante130
Regular Visitor

Visualice el trabajo pendiente y la variación de ventas netas de horas extras

FYI: primera vez publicando, hágamelo saber si no está claro y voy a editar.

Creé este pequeño conjunto de datos para responder a la situación con la que estoy teniendo problemas en un modelo más grande.

2 tablas de hechos:

Línea de pedido de ventas: Tabla que muestra el registro de ventas: Entrega programada + Importe por pedido de ventas

Línea de factura de pedido de ventas: Tabla que muestra el registro de facturas: Fecha de factura + Importe por pedido de ventas

Estas son las tablas:

Sales_order_line_table.png

Sales_order_Invoice_line_table.png

Gol:

Visualizar la evolución de las ventas netas (Suma de facturas) + trabajo pendiente (líneas de pedido de ventas abiertas) horas extras

Por ejemplo: Céntrese en SO1 + Utilice una segmentación de datos para cambiar la fecha:

Si: ver la fecha > 2020/07/15
-> SO1 es totalmente factura (Ventas Netas 100 a 50 en Mai +50 en julio)
-> Soso1 Atraso de SO1 a 0 : Atraso - Ventas - Ventas Netas Totales pasadas 100 - (50+50)

SO1-2020-12-1.png
Si: 2020/5/15 <- fecha de visualización < 2020/7/15
-> SO1 es una factura parcial (Ventas netas 50 en Mai -> Porque la fecha de la factura es 2020/5/15 )
-> Trabajo pendiente de SO1 50 en julio: Atraso - Ventas - Ventas Netas Totales Pasadas 100 en Julio - 50

SO1-2020-7-14.png

Si: 2020/3/01 <- fecha de visualización < 2020/5/15
-> SO1 no se factura : Ventas Netas 0
-> Trabajo pendiente de SO1 100 en julio: Atraso - Ventas - Ventas Netas Totales Pasadas 100 en Julio - 0

SO1-2020-5-14.png

Si: ver fecha < 2020/3/01
SO1 no se creó: Ventas netas 0 & Atraso - 0

Modelo y Fórmula I probados:

Model.png

Ventas Netas: CALCULATE(SUM(SO_Invoice[Amount]),USERELATIONSHIP(Sales_Order[Sales Order lines],SO_Invoice[Líneas de pedido de ventas]), FILTER(SO_Invoice,SO_Invoice[Fecha de factura]<-MAX(Sec_Calendar[Fecha])))

Ventas: CALCULATE(SUM(Sales_Order[Amount]),USERELATIONSHIP(Main_Calendar[Date],Sales_Order[Scheduled delivery date]))

Atraso - Ventas - Ventas Netas

-> He probado un montón de fórmula de trabajo pendiente diferente para tratar de desfiltrar el calendario en el cálculo, pero nunca estoy obteniendo el resultado esperado.

Esta captura de pantalla muestra mi resultado actual con esas fórmulas: (la fecha de vista es posterior a 2020/7/15, por lo que el SO1 está completamente facturado)

-> Las ventas netas son correctas

-> El atraso es incorrecto: Debe estar en 0 para cada mes (porque cuando la fecha de vista es posterior a 2020/7/15, SO1 está completamente facturado: Ventas - Ventas Netas Totales 100 - 50 - 50 a 0)

Backlog_Issue.png-> El trabajo pendiente debe estar en 0 aquí.

También me estoy uniendo al archivo PowerBi (enlace expirar en 2020/20/12) : WeTransfer Link

6 REPLIES 6
Dante130
Regular Visitor

Funciona gracias !!!

v-rzhou-msft
Community Support
Community Support

Hay @Dante130

En su captura de pantalla, la fecha que seleccionó puede ser posterior o igual a 2020/07/15.

¿Quiere decir que cuando la fecha > 2020/07/15, Mes 5 mostrar -50 (50-100), Mes 7 show(50+50 -100) a 0?

¿Cuál debe dar lugar a la devolución de los atrasos si su fecha está entre 2020/03/01 y 2020/07/15 o si la fecha es anterior a 2020/03/01?

Por favor, muéstrame más detalles sobre el resultado que necesitas.

Saludos

Rico Zhou

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Gracias por su respuesta, edité mi post para tratar de hacerlo un poco más claro.

Y voy a tratar de desarrollar un poco aquí también:
Así que sólo nos centramos en SO1 por ahora.
Si la fecha de visualización > 2020/07/15
-> SO1 es totalmente factura (Ventas Netas 100 a 50 en Mai +50 en julio)
-> SO1 Backlog - 0 : Atraso - Ventas - Ventas Netas 100 - (50+50)
Si: 2020/5/15 <- fecha de visualización < 2020/7/15
-> SO1 es una factura parcial (Ventas netas 50 en Mai -> Porque la fecha de la factura es 2020/5/15 )
-> Trabajo pendiente de SO1 50 en julio (porque las ventas - ventas netas totales pasadas 100 en julio - 50)
Si: 2020/3/01 <- fecha de visualización < 2020/5/15
-> SO1 no se factura en absoluto: Ventas Netas 0
-> SO1 Backlog 100 en julio
Si: ver fecha < 2020/3/01
-> SO1 no se crea: Las ventas netas y el trabajo pendiente son nulos

Hay @Dante130

Puedes probar mi medida.

Medida:

Backkog - test 4 = 
VAR _SelDate =
    MAX ( Sec_Calendar[Date] )
VAR _YearMonth =
    YEAR ( MAX ( Sales_Order[Scheduled delivery date] ) ) * 100
        + MONTH ( MAX ( Sales_Order[Scheduled delivery date] ) )
VAR _NetSale =
    SUMX (
        FILTER (
            ALL ( SO_Invoice ),
            SO_Invoice[Invoice date] <= _SelDate
                && SO_Invoice[Sales Order lines] = SELECTEDVALUE ( Sales_Order[Sales Order lines] )
        ),
        SO_Invoice[Amount]
    )
VAR _Result = [Sales] - _NetSale
RETURN
    IF (
        MAX ( Main_Calendar[YearMonth] ) = _YearMonth,
        _Result
    )

El resultado es el siguiente.

Por ejemplo, SO1, mostrará atrasos en julio.

Fecha de selección: 2020/08/10 > 2020/07/15 Resultado en julio de 100-50-50 a 0.

1.png

Fecha de selección: 2020/05/31 entre 2020/05/15 y 2020/07/15 Resultado en julio de 100-50.

2.png

Fecha de selección: 2020/04/13 antes de 2020/05/15 Resultado en julio de 100 euros.

3.png

Fecha de selección: 2020/02/22 antes de 2020/03/01 Resultado en julio - nulo.

4.png

Saludos

Rico Zhou

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Hola @RicoZhou ,
Gracias por su medida. Funciona según lo esperado al seleccionar un SO (SO1, SO2, SO3 o SO4).

Pero cuando seleccionamos 2 o más SO al mismo tiempo, no funciona. Traté de modificar su medida para tener esto en cuenta, pero aún no hay éxito de mi lado.
¿Alguna idea?

Hay @Dante130

Creo que puede que necesite cambiar su relación entre sus mesas para lograr su objetivo.

1.png

Medidas:

Sales 1223 = 
VAR SelectedDate = MAX(Sec_Calendar[Date])
return
CALCULATE(SUM(Sales_Order[Amount]),Sales_Order[SO Created date]<=SelectedDate)
Measure 1223 = 
VAR _SelDate =
    MAX ( Sec_Calendar[Date] )
VAR _YearMonth =
    YEAR ( MAX ( Sales_Order[Scheduled delivery date] ) ) * 100
        + MONTH ( MAX ( Sales_Order[Scheduled delivery date] ) )
VAR _NetSale =
    SUMX (
        FILTER (
            ALL ( SO_Invoice ),
            SO_Invoice[Invoice date] <= _SelDate
                && SO_Invoice[Sales Order lines] in VALUES( Sales_Order[Sales Order lines] )
        ),
        SO_Invoice[Amount]
    )
VAR _Result = [Sales 1223] - _NetSale
VAR OutPut = 
    IF (
        MAX ( Main_Calendar[YearMonth] ) = _YearMonth,
        _Result
    )
RETURN OutPut

El resultado es el siguiente.

Debido a SO_invoice tabla no contiene SO4, por lo que el mes 10 mostrará 100 si date> , cree la fecha 2020/06/01.

2.png

Fecha: 2020/05/15 seleccione SO1 y SO2.

3.png

Si cambia su relación, es posible que deba actualizar o reconstruir sus otras medidas.

Puede descargar el archivo pbix desde este enlace: Archivo

Saludos

Rico Zhou

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

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.