Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
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])
)
Plazo de pago | Días |
A030 | 30 |
A060 | 60 |
A045 | 45 |
A025 | 25 |
A035 | 35 |
Nombre del proveedor | Gastar | Plazo de pago | Fecha |
Proveedor A | $ 150,000.00 | A030 | 1/1/2025 |
Proveedor A | $ 200,000.00 | A030 | 1/20/2025 |
Proveedor A | $ 30,000.00 | A030 | 2/15/2025 |
Proveedor A | $ 50,000.00 | A030 | 2/28/2025 |
Proveedor A | $ 60,000.00 | A030 | 3/1/2025 |
Proveedor A | $ 15,000.00 | A030 | 3/2/2025 |
Proveedor B | $ 500,000.00 | A030 | 2/3/2025 |
Proveedor B | $ 20,000.00 | A060 | 1/4/2025 |
Proveedor B | $ 15,000.00 | A045 | 3/5/2025 |
Proveedor C | $ 30,000.00 | A025 | 3/6/2025 |
Proveedor C | $ 32,000.00 | A035 | 3/7/2025 |
Proveedor D | $ 100,000.00 | A060 | 3/8/2025 |
Proveedor D | $ 100,000.00 | A060 | 3/9/2025 |
Proveedor D | $ 120,000.00 | A060 | 1/10/2025 |
Proveedor D | $ 20,000.00 | A060 | 2/11/2025 |
Proveedor D | $ 75,000.00 | A060 | 3/12/2025 |
Proveedor D | $ 80,000.00 | A060 | 1/13/2025 |
Proveedor E | $ 175,000.00 | A045 | 3/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 ,
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.
@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.
@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.
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.
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.
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.