

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Promedio Ponderado
Buen dia a todos, creo esta discucion porque necesito calcular el promedio de dias ponderados entre que llega una factura, hasta que se hace la orden de pago. En la base de datos tengo el importe de la factura, la fecha de recepcion y la fecha de emision de orden de pago.
Creo que seria algo asi, pero no se bien como hacerlo en qlikview:
Importe | Diferencia Dias | Ponderador | Promedio Ponderado |
---|---|---|---|
2197.81 | 17 | 0.2399 | 4.0789 |
814 | 3 | 0.0888 | 0.2664 |
104.06 | 8 | 0.0113 | 0.0904 |
4840 | 8 | 0.5284 | 4.2272 |
1202.8 | 23 | 0.1313 | 3.0199 |
PROMEDIO PONDERADO: | 11.6822 |
Al ponderador lo calculo como: Importe / sum(Importe) = Ej: 2197.81 / 9158.67 = 0.2399.
De la base de datos traigo todo separado, quise hacer la siguiente funcion en qlikview, pero no me dio resultado:
=(Importe / sum(Importe)) * (FechaPago-FechaRecepcion)
- « Previous Replies
-
- 1
- 2
- Next Replies »

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hola Rodrigo,
La fórmula debería ser algo como...
= sum(Importe) / sum(total importe) * (FechaPago - FechaRecepcion)


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
El tema es que el ponderador sale de cada importe, por eso hago: =Importe / sum(Importe), ya que cada importe se debe dividir por la suma de todos los importes para sacar el ponderador, el cual se multiplica luego por la diferencia de dias.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
La tabla que pones como ejemplo está desglosada por una dimensión (que no se ve), la llamaré Dimension1.
Lo que haría la fórmula siguiendo tu ejemplo, sería
=sum(Importe) / sum(total importe) * (FechaPago - FechaRecepcion)
= 2197.81 / 9158.67 * 17
- sum(Importe) está afectado por el contexto en el que se encuentra la expresión (desglose por Dimension1).
- sum(total Importe) la palabra total está modificando el contexto en el que se calcula la expresión y realiza el cálculo sobre el total del Importe, sin tener en cuenta el desglose por Dimension1.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Podrias anexar un qvw con data dummy?


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Esa tabla la obtengo con una consulta SQL, ya que son los datos que necesito.
Hice la siguiente formula, pero muestra 0:
=sum((Importe/TotalImporte)*(FechaRegistracion_Pago-FechaRegistracion_Recepcion))
Asi creeria que es correcto, pero muestra el valor 0.


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Consegui que me diera un valor, pero resulta que no es el valor esperado, ya que cuando selecciono un mes me da un valor de 0.36 y no es correcto, ya que se demora mas de un dia en emitir un pago.
Mi pregunta es, la diferencia de dos fechas da un valor en dias? Es decir: =FechaRegistracion_Pago-FechaRegistracion_Recepcion = dias de diferencia?
Adjunto el archivo

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Recomiendo que esa diferencia de dias, venga desde el script, trata de agregarlo a la misma tabla de donde estan las fechas, saludos!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Usando la fórmula de Jairo sale correctamente, Observa que tiene una diferencia con la tuya, pues hace Sum(importe) / Sum(total importe)
Te aconsejo que lo hagas paso a paso introduciendo una expresión para el ponderador y otra para los días, así verás mejor el error.
Luego una vez obtenido la contribución correcta de cada registro, tendrás que totalizar en cabecera para obtener la media de pago de todos los registros.
He probado a filtrar por semanas y calcula perfectamente
Te dejo un ejemplo detallado


- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Lo hice segun lo que dice Jairo, el tema es que el importe total es un valor unico, igual en todos casos, por eso no veo la razon para hacer sum(total importe), yo lo que tengo que hacer es dividir cada importe por el total, y luego sumarlo, lo que seria algo asi: sum(Importe/ImporteTotal), como cuando se calcula una probabilidad. Hice tal cual dice Jairo y no me tira ningun resultado, esta es la expresion:
=sum(Importe) / sum(total Importe) * (FechaRegistracion_Pago-FechaRegistracion_Recepcion)
El promedio ponderado se calcula dividiendo cada importe sobre el total de importes y a eso se lo multiplica por la diferencia de dias, eso me da el valor ponderado de cada importe, sumando todos esos valores obtengo el promedio ponderado de dias, por lo que la formula deberia ser:
=sum((Importe / ImporteTotal) * (FechaRegistracion_Pago - FechaRegistracion_Recepcion))
Pero esta expresion me da un valor que no es correcto, me da 0.3, 2.9 y valores asi que no son correctos.

- « Previous Replies
-
- 1
- 2
- Next Replies »