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

Don't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.

Reply
Syndicate_Admin
Administrator
Administrator

Crear una mesa virtual para distribuir la ejecución de un contrato

Tengo una tabla con una fila para cada contrato firmado y cuatro columnas:

  1. La fecha de firma del contrato.
  2. La cantidad a entregar.
  3. La fecha de inicio de la entrega.
  4. La fecha de finalización de la entrega.

Ya he creado un gráfico que muestra la distribución mensual en función de la fecha de firma del contrato. Sin embargo, me gustaría crear otro gráfico que muestre la distribución mensual en función de los meses de entrega de los contratos.

No estoy seguro de cómo estructurar estos datos o generar el gráfico. ¿Podrías guiarme?

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Hola @MateoLogi

Sin embargo, me gustaría crear otro gráfico que muestre la distribución mensual en función de los meses de entrega de los contratos. - ¿Está diciendo que desea distribuir el contrato en función de sus fechas de entrega de inicio y finalización? Por ejemplo, si un contrato comienza el 1 de enero y termina el 1 de marzo, ¿debería reflejarse en cada mes de enero a marzo? Si es así, consulte el ejemplo de pbix adjunto.

danextian_0-1738072864365.png

Adjunto los datos base para su referencia.

FechaNº ContratoProductoCosechaVendedorCompradorCantidadPrecioPrincipioFinRitmoDep/RenTransporteComisión VendedorComisión CompradorComisión Cocourtage
01/01/20242511208C1CEBADA2025NS 250,0021401/11/202530/06/2026MDESTINONO1
03/02/20242511208C2CEBADA2025BS 250,0021401/11/202530/06/2026MDESTINONO1
08/03/20242511208C3TRIGO2025CS 250,0021401/11/202530/06/2026MDESTINONO1
10/03/20242511208C4TRIGO2025NS 350,0021401/11/202530/06/2026MDESTINONO1
11/04/20242511208C5TRIGO2025HS 350,0021401/11/202530/06/2026MDESTINONO1
31/05/20242511208C6TRIGO2024JV 300,0021401/02/202531/03/2025MORIGEN0,96
06/06/20242511208C7TRIGO2024TV 300,0021401/03/202531/05/2025OCORIGENNO1
08/07/20242511208C8TRIGO2024PV 500,0021401/03/202515/06/2025OCORIGENNO1
07/08/20242511208C9TRIGO2025CV 500,0021401/07/202531/12/2025EORIGENNO1
28/09/20242511208C10TRIGO2025CV 500,0021401/07/202531/12/2025EORIGENNO1
30/10/20242511208C11TRIGO2024AG 1.000,0021416/01/202531/03/2025OCORIGEN0,91
20/11/20242511208C12TRIGO2024BG 1.500,0021416/01/202531/03/2025OCORIGEN0,91
13/12/20242511208C13TRIGO2024BG 1.000,0021401/02/202515/06/2025OCORIGENNO1,5
Syndicate_Admin
Administrator
Administrator

Hola @MateoLogi ,

Debe generar una tabla virtual que distribuya la cantidad total a lo largo de los meses de entrega.

Pruebe a continuación paso a paso en Power BI con DAX:

1. Entender el problema

  • Cada contrato tiene una fecha de inicio de entrega , una fecha de finalización de la entrega y una cantidad a entregar.
  • Debe distribuir la cantidad de manera uniforme (o proporcional si se especifica) a lo largo de los meses de entrega.

2. Crear una mesa virtual en DAX

Cree una tabla calculada para expandir los datos a lo largo de todos los meses relevantes.

DeliveryDistribution = 
ADDCOLUMNS(
    GENERATE(
        'Contracts',
        CALENDAR(
            STARTOFMONTH('Contracts'[Delivery Start Date]),
            ENDOFMONTH('Contracts'[Delivery End Date])
        )
    ),
    "MonthYear", FORMAT([Date], "YYYY-MM"),
    "Monthly Quantity", 
        DIVIDE(
            'Contracts'[Quantity to Deliver],
            DATEDIFF(
                'Contracts'[Delivery Start Date],
                'Contracts'[Delivery End Date],
                MONTH
            ) + 1
        )
)

3. Usar la mesa virtual en un gráfico

  • En el informe, use la tabla DeliveryDistribution como origen de datos.
  • Utilice MonthYear como eje X y Monthly Quantity como valor.

4. Alternativa: sin una tabla calculada

Si prefiere no crear una tabla calculada y desea trabajar directamente en medidas:

  • Utilice DAX para calcular la distribución mensual de forma dinámica.
  • Example measure:
    Monthly Delivery = 
    SUMX(
        FILTER(
            ADDCOLUMNS(
                GENERATE(
                    'Contracts',
                    CALENDAR(
                        'Contracts'[Delivery Start Date],
                        'Contracts'[Delivery End Date]
                    )
                ),
                "MonthYear", FORMAT([Date], "YYYY-MM"),
                "Monthly Quantity", 
                    DIVIDE(
                        'Contracts'[Quantity to Deliver],
                        DATEDIFF(
                            'Contracts'[Delivery Start Date],
                            'Contracts'[Delivery End Date],
                            MONTH
                        ) + 1
                    )
            ),
            [MonthYear] = FORMAT(SELECTEDVALUE('Calendar'[Date]), "YYYY-MM")
        ),
        [Monthly Quantity]
    )
  • Use esta medida en un objeto visual con la tabla de calendario.

5. Toques finales

  • Asegúrese de que la tabla de fechas esté marcada como una tabla de fechas.
  • Ordene la columna MonthYear por una columna numérica (como AAAAMM).

Este enfoque distribuye las cantidades correctamente a lo largo de los meses de entrega y le permite visualizar la distribución. ¡Avísame si necesitas más aclaraciones!

Si esta publicación ayuda, por favor dale me gusta y considera Acéptalo como una solución para ayudar a los demás miembros a encontrarlo más rápidamente.

¡Hola, gracias por tu ayuda! Generé las medidas de la siguiente manera:

DAX
CopiarEditar
Medida = SUMX( FILTER( ADDCOLUMNS( GENERATE( 'Contratos', CALENDAR( 'Contratos'[Principio], 'Contratos'[Fin] ) ), "MonthYear", FORMAT([Fecha], "YYYY-MM"), "Monthly Quantity", DIVIDE( 'Contratos'[Cantidad], DATEDIFF( 'Contratos'[Principio], 'Contratos'[Fin], MONTH ) + 1 ) ), [MonthYear] = FORMAT(SELECTEDVALUE('Calendario'[Fecha]), "YYYY-MM") ), [Monthly Quantity] )
 

Pero el resultado no es el que esperaba.

Solo muestra información si filtro día a día, pero si quiero ver un mes completo, no funciona.


MateoLogi_2-1738077189008.png

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Jan25PBI_Carousel

Power BI Monthly Update - January 2025

Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.

Jan NL Carousel

Fabric Community Update - January 2025

Find out what's new and trending in the Fabric community.

Top Solution Authors