Promedio de peso

Un usuario Pregunto ✅

Anónimo

Hola,

Estoy buscando ayuda con una fórmula que me proporcione el promedio ponderado basado en un conjunto de parámetros. Me gustaría que la fórmula tomara la suma del gasto por número de material y la dividiera por la suma de cantidades para ese número de material. Sin embargo, me gustaría que hiciera esto en función de la compra más reciente y que se vea 365 días atrás. Entonces, si hago una compra hoy en el material 12345, la fórmula tomará hoy y los últimos 365 días de compras para ese material y me dará el promedio ponderado basado en ese rango de fechas.

En segundo lugar, si pudiera haber una fórmula que me devuelva el precio de compra más reciente. Entonces, la fórmula sale y busca la última vez que compramos ese material y devuelve ese precio.

Cualquier ayuda con esto sería genial

¡Gracias!

fhill

En respuesta a Anónimo

Esta es la opción Agregar fecha (-1 año) en lugar del comando FECHA… (Perdón por el cambio en el nombre de la TABLA y las columnas en la versión a continuación en comparación con mi publicación original). Pero solo tiene que cambiar la Porción de FILTRO a use DATEADD frente a DATE(Y)(M)(D)

1_Year_Avg_Spend = CALCULAR( SUMA( ‘Tabla'[USD Spend]) / SUMA(‘Tabla'[Qty]), FILTRO( ‘Tabla’, ‘Tabla'[Document Date] > DATEADD(‘Tabla'[Document Date], -1 AÑO)))

fhill

En respuesta a Anónimo

Prueba esto….

Last_Pur_Price = CALCULATE( PROMEDIO( ‘Tabla'[Part Price]), FILTRO(‘Tabla’, ‘Tabla'[Document Date] = [Last_Pur_Date]))
Si tuvo varias ventas el mismo día, suponiendo que desea obtener el promedio de las dos.
imagen.png

fhill

Considere publicar algunos datos simulados de muestra, con el resultado deseado. En particular, más información sobre cómo desea que se ponderen los valores en función de un intervalo de fechas. No suena terriblemente difícil, pero ayudaría saber cómo están estructurados sus datos antes de intentar proporcionarle ejemplos de código…

Para descanso

Anónimo

En respuesta a fhill

Hola @fhill,

Así que organicé los datos a continuación sobre cómo esperaríamos que se configurara.

Compra 1 – PN-12345 Gasto 500 Cantidad 50 Fecha 1/10/2020

Compra 2 – PN-12345 Gasto 400 Cantidad 40 Fecha 1/1/2020

Compra 3 – PN-12345 Gasto 600 Cantidad 60 Fecha 5/1/2020

Compra 5 – PN-12345 Gasto 100 Cantidad 10 Fecha 6/1/2019

Así que para los datos anteriores. El cálculo solo tomaría las compras que caen dentro del rango de fechas de 365 desde la compra más reciente (compra 1). Por lo tanto, la compra 5 quedaría fuera del promedio ya que está fuera de esa línea de tiempo. El cálculo del promedio ponderado sería solo durante ese período de tiempo de 365 días. Tome la suma del gasto y divídala por la suma de la cantidad.

Déjeme saber si esto ayuda

fhill

En respuesta a Anónimo

Dado que querrá la fecha de la última compra, y la usaremos menos 1 año en la fórmula CAL, comience con eso como su propia medida:

LastPurchaseDate = CALCULATE(LASTDATE(‘Tendencia de 1 año'[Date]), FILTER(ALLEXCEPT(‘Tendencia de 1 año’, ‘Tendencia de 1 año'[Part#]), 1=1))
** Tenemos que incluir el Filtro más complicado, para incluir este mismo valor en el próximo Cálculo.
No estaba seguro de si estaba buscando un Promedio de ‘Gasto’ o ‘Gasto dividido por Ctd’.
1_Year_Avg_Price = CALCULATE(AVERAGE(‘Tendencia de 1 año'[Total Spend]), FILTER(‘Tendencia de 1 año’, ‘Tendencia de 1 año'[Date] > FECHA((AÑO([LastPurchaseDate])-1 MES([LastPurchaseDate]), DÍA([LastPurchaseDate]))))
1_Year_Avg_Price_PerQty = CALCULATE((SUM(‘Tendencia de 1 año'[Total Spend]) / SUM(‘Tendencia de 1 año'[Qty])), FILTER(‘Tendencia de 1 año’, ‘Tendencia de 1 año'[Date] > FECHA((AÑO([LastPurchaseDate])-1 MES([LastPurchaseDate]), DÍA([LastPurchaseDate]))))

imagen.png

Anónimo

En respuesta a fhill

Hola @fhill

Esa primera fórmula funcionó a las mil maravillas.

Estoy buscando la segunda opción que proporcionaste para el promedio. Sin embargo, recibo un error con la fórmula. ¿Algunas ideas?2020-10-22_9-44-13.png

fhill

En respuesta a Anónimo

Esta es la opción Agregar fecha (-1 año) en lugar del comando FECHA… (Perdón por el cambio en el nombre de la TABLA y las columnas en la versión a continuación en comparación con mi publicación original). Pero solo tiene que cambiar la Porción de FILTRO a use DATEADD frente a DATE(Y)(M)(D)

1_Year_Avg_Spend = CALCULAR( SUMA( ‘Tabla'[USD Spend]) / SUMA(‘Tabla'[Qty]), FILTRO( ‘Tabla’, ‘Tabla'[Document Date] > DATEADD(‘Tabla'[Document Date], -1 AÑO)))

Anónimo

En respuesta a fhill

¡Tú, mi amigo, un genio! ¡Gracias! Que viaje jaja.

Una última cosa… ¿es posible convertir esa primera fórmula que hiciste para decirme cuál era el precio en esa fecha?

Fórmula original =

CALCULAR(ÚLTIMA FECHA(tbReceivalHistory[Document Date]),FILTRO(TODO EXCEPTO(tbReceivalHistory,tbReceivalHistory[Part Number (Material)]),1=1))
Quiero que esto me diga el precio de la pieza en esa fecha que está encontrando.

fhill

En respuesta a Anónimo

Prueba esto….

Last_Pur_Price = CALCULATE( PROMEDIO( ‘Tabla'[Part Price]), FILTRO(‘Tabla’, ‘Tabla'[Document Date] = [Last_Pur_Date]))
Si tuvo varias ventas el mismo día, suponiendo que desea obtener el promedio de las dos.
imagen.png

Anónimo

En respuesta a fhill

¡Gracias de nuevo! Esto hará justo lo que necesito. Me imagino que el promedio sería la mejor práctica. Eres un salvavidas. ¡Gracias otra vez por toda tu ayuda!

Ashish_Mathur

En respuesta a Anónimo

Hola,

Comparte algunos datos con los que trabajar. Los datos deben ser tales que se puedan pegar en un archivo de MS Excel. Alternativamente, comparta el enlace desde donde puedo descargar su archivo PBI.

Anónimo

En respuesta a Ashish_Mathur

@Ashish_Mathur Avísame si esto ayuda

Número de pieza (material) Precio de la pieza (USD) (Precio por pieza) Cantidad UOM (Unidad de medida) Gasto en USD Documento Fecha
PN-272679 $35.05 9 EE. UU. $315.42 14/03/2019
PN-272679 $23.54 3 EE. UU. $70.63 4/1/2019
PN-272679 $21.37 96 EE. UU. $2,051.78 4/1/2019
PN-272679 $23.54 30 EE. UU. $706.28 4/1/2019
PN-272679 $34.88 9 EE. UU. $313.90 15/04/2019
PN-272679 $21.62 69 EE. UU. $1,491.70 16/04/2019
PN-272679 $21.57 75 EE. UU. $1,617.49 29/04/2019
PN-272679 $24.94 24 EE. UU. $598.67 29/04/2019
PN-272679 $23.44 24 EE. UU. $562.52 10/05/2019
PN-272679 $24.83 36 EE. UU. $894.03 30/05/2019
PN-272679 $22.42 48 EE. UU. $1,076.22 30/05/2019
PN-272679 $25,13 24 EE. UU. $603.11 10/06/2019
PN-272679 $25,13 24 EE. UU. $603.11 27/06/2019
PN-272679 $25,13 24 EE. UU. $603.11 27/06/2019
PN-272679 $22.11 96 EE. UU. $2,122.19 4/7/2019
PN-272679 $25.57 24 EE. UU. $613.65 25/7/2019
PN-272679 $22.11 84 EE. UU. $1,856.92 25/7/2019
PN-272679 $25.57 24 EE. UU. $613.65 25/7/2019
PN-272679 $22.00 60 EE. UU. $1,320.20 14/8/2019
PN-272679 $25.22 24 EE. UU. $605.36 31/08/2019
PN-272679 $25.22 24 EE. UU. $605.36 22/08/2019
PN-272679 $25.22 24 EE. UU. $605.36 31/08/2019
PN-272679 $22.00 72 EE. UU. $1,584.25 28/8/2019
PN-272679 $25.22 24 EE. UU. $605.36 31/08/2019
PN-272679 $25.25 24 EE. UU. $606.06 20/09/2019
PN-272679 $25,36 24 EE. UU. $608.52 10/10/2019
PN-272679 $25,35 36 EE. UU. $912.77 19/10/2019
PN-272679 $25,36 24 EE. UU. $608.52 24/10/2019
PN-272679 $25,28 24 EE. UU. $606.63 5/11/2019
PN-272679 $22.82 48 EE. UU. $1,095.38 14/11/2019
PN-272679 $22,05 60 EE. UU. $1,322.98 14/11/2019
PN-272679 $25,28 24 EE. UU. $606.63 14/11/2019
PN-272679 $25,28 24 EE. UU. $606.63 29/11/2019
PN-272679 $21.85 150 EE. UU. $3,277.98 27/11/2019
PN-272679 $25,56 24 EE. UU. $613.44 1/2/2020
PN-272679 $25.88 24 EE. UU. $621.14 14/01/2020
PN-272679 $25,56 24 EE. UU. $613.44 14/01/2020
PN-272679 $25.88 24 EE. UU. $621.14 23/01/2020
PN-272679 $23.02 40 EE. UU. $920.80 2/6/2020
PN-272679 $23.02 40 EE. UU. $920.80 2/10/2020
PN-272679 $23.02 40 EE. UU. $920.80 21/02/2020
PN-272679 $23.02 40 EE. UU. $920.80 20/02/2020
PN-272679 $22.01 40 EE. UU. $880.33 3/2/2020
PN-272679 $21.68 40 EE. UU. $867.35 25/03/2020
PN-272679 $21.71 40 EE. UU. $868.25 4/1/2020
PN-272679 $20.74 80 EE. UU. $1,659.14 4/7/2020
PN-272679 $22.29 40 EE. UU. $891.46 15/05/2020
PN-272679 $21.51 60 EE. UU. $1,290.49 04/06/2020
PN-272679 $22,06 60 EE. UU. $1,323.37 7/6/2020
PN-272679 $22,06 81 EE. UU. $1,786.55 21/07/2020
PN-272679 $22.52 60 EE. UU. $1,351.36 13/8/2020
PN-272679 $22.83 60 EE. UU. $1,370.02 9/3/2020
PN-272679 $22.45 60 EE. UU. $1,347.10 10/9/2020

fhill

En respuesta a Anónimo

Acabo de ver su muestra actualizada, avíseme si el código que acabo de publicar lo ayuda a llegar a su solución sin tener que volver a hacer todo el código.

Gracias,

Para descanso

fhill

En respuesta a fhill

¿Tiene la columna de fecha en los datos originales formateada para ser un valor de fecha en Power BI?

Para descanso

Anónimo

En respuesta a fhill

Entonces la medida funciona cuando tengo todos los números materiales. Cuando filtro a solo uno de ellos, aparece el error. ¿Alguna forma de detener esto?

fhill

En respuesta a Anónimo

Hmmmm, voy a promocionar esto en el canal. Tomé sus datos de muestra más largos, cambié todos los demás números de pieza, pero aún pude producir un cálculo con 1 número de pieza filtrado…

fhill_0-1603384461941.png

Anónimo

En respuesta a fhill

Hola,

Sí lo es.

kfitz20_0-1603378556680.png

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *