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

Cómo calcular los ingresos de cada mes hasta el mes actual

Hola, tengo un conjunto de datos y necesito calcular los ingresos y el volumen de cada mes en función de la fecha de inicio y finalización del contrato.

¿Hay alguna manera de crear una medida para ver los ingresos de cada mes?

A continuación se muestra el ejemplo de la columna que creé para el 18 de octubre. El usuario desea ver los ingresos de cada mes hasta el mes actual.

Oct-18 Ingresos = 
IF('Tabla'[Fecha de finalización del contrato]<Fecha(2018,10,1),0,
IF('Tabla'[Fecha de inicio del contrato]>Fecha(2018,10,31),0,
IF(AND('Table'[Fecha de inicio del contrato]<=Date(2018,10,1),'Table'[Fecha de finalización del contrato]>Date(2018,10,31)),(DATEDIFF(Date(2018,10,1),Date(2018,10,31),DAY)+1)*'Table'[Precio neto],
IF(AND('Table'[Fecha de inicio del contrato]>Date(2018,10,1),'Table'[Fecha de finalización del contrato]>Date(2018,10,31)),(DATEDIFF('Table'[Fecha de inicio del contrato],Date(2018,10,31),DAY)+1)*'Table'[Precio neto],
IF(AND('Table'[Contract Start Date]<=Date(2018,10,1),'Table'[Contract End Date]<=Date(2018,10,31)),(DATEDIFF(Date(2018,10,1),'Table'[Contract End Date],DAY)+1)*'Table'[Net Price],
IF(AND('Table'[Contract Start Date]>=Date(2018,10,1),'Table'[Contract End Date]<=Date(2018,10,31)),(DATEDIFF('Table'[Contract Start Date],'Table'[Contract End Date],DAY)+1)*'Table'[Net Price],0))))))

Aquí está el ejemplo.

PBI_newuser_0-1624003863328.png

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

No @PBI_newuser

Debido a su modelo de datos, no podíamos usar measure para obtener el resultado directamente. Si desea mostrar la suma de cada mes por el grupo de Product, Order Doc y Conrtact number, puede usar generate function para crear una tabla dax y, a continuación, generar un objeto visual de matriz.

Append Table = 
VAR _T =
    GENERATE (
        ADDCOLUMNS (
            CALENDAR (
                DATE(2018,10,01),
                MAX ( 'Table'[Contract End Date] )
            ),
            "Year", YEAR ( [Date] ),
            "Month", MONTH ( [Date] ),
            "YearMonth", FORMAT ( [Date], "YYYY-MM" )
        ),
        SUMMARIZE (
            'Table',
            'Table'[Product],
            'Table'[Order Doc.],
            'Table'[Contract Number],
            'Table'[Net Price],
            'Table'[Contract Start Date],
            'Table'[Contract End Date]
        )
    )
VAR _T2 =
    SUMMARIZE (
        FILTER ( _T, [Date] >= [Contract Start Date] && [Date] <= [Contract End Date] ),
        [Date],
        [Product],
        [Order Doc.],
        [Contract Number],
        [Net Price],
        [YearMonth],
        [Contract Start Date],
        [Contract End Date]
    )
RETURN
    _T2

El resultado es el siguiente.

1.png

Saludos

Rico Zhou

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

View solution in original post

5 REPLIES 5
Syndicate_Admin
Administrator
Administrator

No @PBI_newuser

Debido a su modelo de datos, no podíamos usar measure para obtener el resultado directamente. Si desea mostrar la suma de cada mes por el grupo de Product, Order Doc y Conrtact number, puede usar generate function para crear una tabla dax y, a continuación, generar un objeto visual de matriz.

Append Table = 
VAR _T =
    GENERATE (
        ADDCOLUMNS (
            CALENDAR (
                DATE(2018,10,01),
                MAX ( 'Table'[Contract End Date] )
            ),
            "Year", YEAR ( [Date] ),
            "Month", MONTH ( [Date] ),
            "YearMonth", FORMAT ( [Date], "YYYY-MM" )
        ),
        SUMMARIZE (
            'Table',
            'Table'[Product],
            'Table'[Order Doc.],
            'Table'[Contract Number],
            'Table'[Net Price],
            'Table'[Contract Start Date],
            'Table'[Contract End Date]
        )
    )
VAR _T2 =
    SUMMARIZE (
        FILTER ( _T, [Date] >= [Contract Start Date] && [Date] <= [Contract End Date] ),
        [Date],
        [Product],
        [Order Doc.],
        [Contract Number],
        [Net Price],
        [YearMonth],
        [Contract Start Date],
        [Contract End Date]
    )
RETURN
    _T2

El resultado es el siguiente.

1.png

Saludos

Rico Zhou

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

Hola @RicoZhou , gracias por la solución.

¿Puedo saber cómo calcular el volumen por mes en la "Tabla anexar"?

Oct-18 Volumen = 
IF('Tabla'[Fecha de finalización del contrato]<Fecha(2018,10,1),0,
IF('Tabla'[Fecha de inicio del contrato]>Fecha(2018,10,31),0,
IF(AND('Tabla'[Fecha de inicio del contrato]<=Fecha(2018,10,1),'Tabla'[Fecha de finalización del contrato]>Fecha(2018,10,31)),1,
IF(AND('Table'[Fecha de inicio del contrato]>Date(2018,10,1),'Table'[Fecha de finalización del contrato]>Date(2018,10,31)),(DATEDIFF('Table'[Fecha de inicio del contrato],Date(2018,10,31),DAY)+1)/(DATEDIFF(Date(2018,10,1),Date(2018,10,31),DAY)+1),
IF(AND('Table'[Fecha de inicio del contrato]<=Date(2018,10,1),'Table'[Fecha de finalización del contrato]<=Date(2018,10,31)),(DATEDIFF(Date(2018,10,1),'Table'[Fecha de finalización del contrato],DAY)+1)/(DATEDIFF(Date(2018,10,1),Date(2018,10,31),DAY)+1),
IF(AND('Table'[Contract Start Date]>=Date(2018,10,1),'Table'[Contract End Date]<=Date(2018,10,31)),(DATEDIFF('Table'[Contract Start Date],'Table'[Contract End Date],DAY)+1)/(DATEDIFF(Date(2018,10,1),Date(2018,10,31),DAY)+1),0)))))))

No @PBI_newuser

Oct-18 Revenue = 
IF('Table'[Contract End Date]<Date(2018,10,1),0,
IF('Table'[Contract Start Date]>Date(2018,10,31),0,
IF(AND('Table'[Contract Start Date]<=Date(2018,10,1),'Table'[Contract End Date]>Date(2018,10,31)),(DATEDIFF(Date(2018,10,1),Date(2018,10,31),DAY)+1)*'Table'[Net Price],
IF(AND('Table'[Contract Start Date]>Date(2018,10,1),'Table'[Contract End Date]>Date(2018,10,31)),(DATEDIFF('Table'[Contract Start Date],Date(2018,10,31),DAY)+1)*'Table'[Net Price],
IF(AND('Table'[Contract Start Date]<=Date(2018,10,1),'Table'[Contract End Date]<=Date(2018,10,31)),(DATEDIFF(Date(2018,10,1),'Table'[Contract End Date],DAY)+1)*'Table'[Net Price],
IF(AND('Table'[Contract Start Date]>=Date(2018,10,1),'Table'[Contract End Date]<=Date(2018,10,31)),(DATEDIFF('Table'[Contract Start Date],'Table'[Contract End Date],DAY)+1)*'Table'[Net Price],0))))))

La columna calcualted es distinguish si la fecha en el mes correcto (en ejemplo es oct en 2018) por la función if y luego devolver 0 si está fuera del rango, y mostrar los días de resultado * Precio neto.

En Anexar tabla, no necesitamos calcular el volumen por código. Verá en nuestra tabla Anexar hay precio neto para cada fecha en el rango, solo necesitamos agregar precio neto en el campo de valor en visual y seleccionar suma.

1.png

resultado:

2.png

Puede descargar el ejemplo anterior y realizar una prueba.

Saludos

Rico Zhou

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

Gracias @RicoZhou !!! Esto es muy útil!

Syndicate_Admin
Administrator
Administrator

@PBI_newuser , consulte esto o el blog de recursos humanos puede ayudar

Cómo dividir/distribuir valores entre fecha de inicio o fecha de finalización o contar días entre meses/días: https://community.powerbi.com/t5/Community-Blog/How-to-divide-distribute-values-between-start-date-o...

https://community.powerbi.com/t5/Community-Blog/HR-Analytics-Active-Employee-Hire-and-Termination-tr...

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.