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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
Syndicate_Admin
Administrator
Administrator

Tipo de pago promedio ponderado simulado

Estoy tratando de usar un parámetro hipotético para hacer una medida de plazo de pago promedio ponderado simulado. Tengo 2 archivos, 1 con las condiciones de pago y el número de días asociados. El otro archivo son los datos principales con el nombre del proveedor, el monto del gasto, el plazo de pago, la fecha. Tengo miles de proveedores y muchos de ellos tienen múltiples términos de pago. Tengo una fórmula para el plazo de pago promedio ponderado (WAPT) que es. Esta es mi fórmula para el plazo de pago promedio ponderado actual

WeightedAvgPT = 
DIVIDE(
    SUMX(
        'SC Data',
         RELATED('Payment Terms'[DAYS]) * 'SC Data'[Spend]
        ),
        SUM('SC Data'[Spend])
    )
A continuación he incluido datos de muestra de ambas tablas. Quiero ser capaz de simular lo que le pasaría al WAPT si cambiara las condiciones de pago de un proveedor. Por ejemplo, si cambié el proveedor B a plazos de 60 días.

Plazo de pagoDías
A03030
A06060
A04545
A02525
A03535

Nombre del proveedor Gastar Plazo de pagoFecha
Proveedor A $ 150,000.00A0301/1/2025
Proveedor A $ 200,000.00A0301/20/2025
Proveedor A $ 30,000.00A0302/15/2025
Proveedor A $ 50,000.00A0302/28/2025
Proveedor A $ 60,000.00A0303/1/2025
Proveedor A $ 15,000.00A0303/2/2025
Proveedor B $ 500,000.00A0302/3/2025
Proveedor B $ 20,000.00A0601/4/2025
Proveedor B $ 15,000.00A0453/5/2025
Proveedor C $ 30,000.00A0253/6/2025
Proveedor C $ 32,000.00A0353/7/2025
Proveedor D $ 100,000.00A0603/8/2025
Proveedor D $ 100,000.00A0603/9/2025
Proveedor D $ 120,000.00A0601/10/2025
Proveedor D $ 20,000.00A0602/11/2025
Proveedor D $ 75,000.00A0603/12/2025
Proveedor D $ 80,000.00A0601/13/2025
Proveedor E $ 175,000.00A0453/14/2025

Por último, aquí hay una captura de pantalla de mi panel de control real. A la izquierda, en púrpura, están los números verificados, y los únicos filtros en la parte superior 2 son el cortador de fecha y excluyen cualquier cosa que tenga un plazo de pago en blanco o un "#". Mis cartas de la derecha en blanco soy yo trabajando a través de los pasos. Los gastos totales no coinciden.

La fórmula que estoy utilizando para el plazo de pago promedio ponderado simulado es:

SimulatedWAPT 2 = 
VAR SimVendor = SELECTEDVALUE('SC Data'[Vendor Name])
VAR SimDays = 'New Payment Term'[New Payment Term Value]
VAR OriginalWAPT = DIVIDE(
    SUMX(
        'SC Data',
        'SC Data'[Spend] * RELATED('Payment Terms'[DAYS])),
        SUM('SC Data'[Spend])
)
VAR VendorOriginalWeighted = 
    SUMX(
        FILTER( 'SC Data', 'SC Data'[Vendor Name] = SimVendor),
        'SC Data'[Spend] * RELATED('Payment Terms'[DAYS]))
VAR VendorSimulatedWeighted =
    SUMX(
        FILTER('SC Data', 'SC Data'[Vendor Name] = SimVendor),
        'SC Data'[Spend] * SimDays
    )
VAR AdjustedWeightedSum = 
    CALCULATE(
        SUMX(
            'SC Data',
            'SC Data'[Spend] * RELATED('Payment Terms'[DAYS])
        ),
        ALL('SC Data'),
    DATESBETWEEN(
        'SC Data'[Posting Date],
        MIN('SC Data'[Posting Date]),
        MAX( 'SC Data'[Posting Date])
    ),
    NOT(ISBLANK('SC Data'[PO Payment Term])) && 'SC Data'[PO Payment Term] <> "#"
    ) - [4. VendorOriginalWeighted] + [5. VendorSimulatedWeighted]
RETURN
DIVIDE(
    AdjustedWeightedSum,
    CALCULATE(
    SUM('SC Data'[Spend]),
    ALL('SC Data'),
    DATESBETWEEN(
        'SC Data'[Posting Date],
        MIN('SC Data'[Posting Date]),
        MAX( 'SC Data'[Posting Date])
    ),
    NOT(ISBLANK('SC Data'[PO Payment Term])) && 'SC Data'[PO Payment Term] <> "#"
    )
)

KB88_0-1745874712896.png

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

@KB88 ,

Queríamos hacer un seguimiento amable para verificar si la solución proporcionada para el problema funcionó. o Háganos saber si necesita más ayuda.

Si nuestra respuesta fue atendida, márquela como Aceptar como solución y haga clic en Sí si le resultó útil.

Saludos

Chaithanya.

Syndicate_Admin
Administrator
Administrator

@KB88 ,

Queríamos hacer un seguimiento amable para verificar si la solución proporcionada para el problema funcionó. o Háganos saber si necesita más ayuda.

Si nuestra respuesta fue atendida, márquela como Aceptar como solución y haga clic en Sí si le resultó útil.

Saludos

Chaithanya.

Syndicate_Admin
Administrator
Administrator

@KB88 ,

Queríamos hacer un seguimiento amable para verificar si la solución proporcionada para el problema funcionó. o Háganos saber si necesita más ayuda.

Si nuestra respuesta fue atendida, márquela como Aceptar como solución y haga clic en Sí si le resultó útil.

Saludos

Chaithanya.

Syndicate_Admin
Administrator
Administrator

@KB88 ,

Gracias por ponerse en contacto con el foro de la comunidad de Microsoft Fabric.

¿Puedes probar esto? He cambiado el dax que se sincronizará con la segmentación de fechas.

SimulatedWAPT_Final = 
VAR SimVendor = SELECTEDVALUE('SC Data'[Vendor Name])
VAR SimDays = SELECTEDVALUE('New Payment Term'[New Payment Term Value])

VAR VendorSpendTable =
    FILTER(
        ALLSELECTED('SC Data'),
        'SC Data'[Vendor Name] = SimVendor &&
        NOT ISBLANK('SC Data'[PO Payment Term]) &&
        'SC Data'[PO Payment Term] <> "#"
    )

VAR VendorOriginalWeighted = 
    SUMX(
        VendorSpendTable,
        'SC Data'[Spend] * RELATED('Payment Terms'[DAYS])
    )

VAR VendorSimulatedWeighted =
    SUMX(
        VendorSpendTable,
        'SC Data'[Spend] * IF(ISBLANK(SimDays), RELATED('Payment Terms'[DAYS]), SimDays)
    )

VAR AllFilteredData =
    FILTER(
        ALLSELECTED('SC Data'),
        NOT ISBLANK('SC Data'[PO Payment Term]) &&
        'SC Data'[PO Payment Term] <> "#"
    )

VAR OriginalWeightedTotal =
    SUMX(
        AllFilteredData,
        'SC Data'[Spend] * RELATED('Payment Terms'[DAYS])
    )

VAR AdjustedWeightedTotal =
    IF(
        NOT ISBLANK(SimVendor) && NOT ISBLANK(SimDays),
        OriginalWeightedTotal - VendorOriginalWeighted + VendorSimulatedWeighted,
        OriginalWeightedTotal
    )

VAR AdjustedTotalSpend = 
    CALCULATE(
        SUM('SC Data'[Spend]),
        AllFilteredData
    )

RETURN
DIVIDE(AdjustedWeightedTotal, AdjustedTotalSpend)

Saludos

Chaithanya.

Syndicate_Admin
Administrator
Administrator

@KB88 ,

Gracias por ponerse en contacto con el foro de la comunidad de Microsoft Fabric.

Puede probar con esta fórmula y háganos saber si tiene algún problema.

SimulatedWAPT 2 = 
VAR SimVendor = SELECTEDVALUE('SC Data'[Vendor Name])
VAR SimDays = SELECTEDVALUE('New Payment Term'[New Payment Term Value])  -- What-if value
VAR VendorSpendTable =
    FILTER(
        ALL('SC Data'),
        'SC Data'[Vendor Name] = SimVendor &&
        NOT(ISBLANK('SC Data'[PO Payment Term])) &&
        'SC Data'[PO Payment Term] <> "#"
    )

-- Original weighted total for the vendor
VAR VendorOriginalWeighted = 
    SUMX(
        VendorSpendTable,
        'SC Data'[Spend] * RELATED('Payment Terms'[DAYS])
    )

-- Simulated weighted total for the vendor
VAR VendorSimulatedWeighted =
    SUMX(
        VendorSpendTable,
        'SC Data'[Spend] * SimDays
    )

-- Full dataset (excluding blanks/#) for original weighted term
VAR OriginalWeightedTotal =
    SUMX(
        FILTER(
            ALL('SC Data'),
            NOT(ISBLANK('SC Data'[PO Payment Term])) &&
            'SC Data'[PO Payment Term] <> "#"
        ),
        'SC Data'[Spend] * RELATED('Payment Terms'[DAYS])
    )

-- Adjusted weighted total after vendor term change
VAR AdjustedWeightedTotal = 
    OriginalWeightedTotal - VendorOriginalWeighted + VendorSimulatedWeighted

-- Adjusted total spend (same as base spend)
VAR AdjustedTotalSpend = 
    CALCULATE(
        SUM('SC Data'[Spend]),
        FILTER(
            ALL('SC Data'),
            NOT(ISBLANK('SC Data'[PO Payment Term])) &&
            'SC Data'[PO Payment Term] <> "#"
        )
    )

RETURN
DIVIDE(AdjustedWeightedTotal, AdjustedTotalSpend)

Saludos

Chaithanya.

Gracias ¡Chaithanya!

Esta medida no parece adherirse a mi segmentador de fechas.
Además, cuando se usa esta medida, ahora titulada SimulatedWAPT3, se reduce el promedio ponderado.

Si haces los cálculos manuales con mi fórmula actual, obtienes 35.176, que coincide con lo que muestra mi medida original para 35.18. Si el nuevo plazo de pago es de 60 años, debería aumentar el promedio ponderado total.

KB88_1-1745935685819.png

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 community update carousel

Fabric Community Update - June 2025

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

Top Solution Authors