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

Data Days is here! Join us now for 60+ days of learning, challenges, and connection. Learn more

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
Fabric Data Days is here Carousel

Fabric Data Days 2026

Don't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.

May Power BI Update Carousel

Power BI Monthly Update - May 2026

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

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Kudoed Authors