Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
¡Hola a todos!
Tengo un problema único que me gustaría resolver y definitivamente agradecería cualquier ayuda. Tengo un ejemplo de datos como el siguiente:
Cálculo del coste medio 1
Cálculo de costo medio 2
Aquí tengo 2 ejemplos de cálculo de costo promedio, sin embargo necesito lograr el cálculo de costo promedio 2.
En este ejemplo, el coste total se Unit_Cost_Price * Cantidad + Cuota (que es la columna más a la derecha)
La forma fácil de calcular el coste medio sería resumir el coste total y dividirlo por la suma de la cantidad (que es el cálculo 1)
Sin embargo, necesito realizar el cálculo usando FIFO, donde se ignoran los 2 primeros artículos (los artículos se ordenan por fecha de más antiguo a más reciente) como la cantidad se cancela entre sí, y el coste medio se calcula después.
Sin duda agradecería cualquier sugerencia sobre lograr esto en powerbi
@draj - Desea buscar min/Max https://community.powerbi.com/t5/Quick-Measures-Gallery/Lookup-Min-Max/m-p/985814#M434
@Greg_Deckler No estoy buscando basado en la fecha máxima. Supongamos que hay 2 más después de la tercera entrada, y la cantidad es todo positivo. El objetivo es calcular el promedio basado en estas 3 entradas (1 actual + 2 nuevas entradas)
@draj - Eso ciertamente no se encontró en el post original y todavía no estoy seguro de que estoy claro sobre el requisito. Entonces, ¿estás diciendo que quieres alguna entrada después de la última entrada negativa? Todavía parece que Lookup Min/ Max para mí si ese es el caso. Busque la fecha MAXX de todos los valores negativos. Utilícelo en el filtro para filtrar las filas después de esa fecha. A continuación, puede hacer el SUMX adecuado, etc. en esas filas FILTER'ed.
@Greg_Deckler Gracias por sus comentarios. Déjame ir con más detalle.
Presentaré una llamada de columna que ejecute QTY, lo que tendría más sentido a medida que explica el concepto de FIFO
Echemos un vistazo a estas 3 entradas, que se han ordenado por fecha (antiguo a nuevo). Tenemos una columna de cantidad en ejecución. En este momento, la forma correcta de calcular el coste medio sería ignorar los primeros 2 artículos (ya que la cantidad se cancela entre sí) y solo considerar la última entrada.
Ahora echemos un vistazo a un escenario donde se agrega otra entrada, aumentando la cantidad:
Así que aquí tenemos el artículo 4, y la cantidad de ejecución es ahora 2.000.000. El coste medio se calcula ahora como (Coste total de 3 y 4)/(última cantidad en ejecución).
Puede ver que es más dinámico que el cálculo promedio habitual (SUM del coste total / SUMA de la cantidad)
Hola, @draj
Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.
Mesa:
Puede crear columnas y medidas calculadas como se indica a continuación.
Calculated column:
Running Qty =
var _date = 'Table'[Date]
var _lastdate =
CALCULATE(
MAX('Table'[Date]),
FILTER(
ALL('Table'),
'Table'[Date]<_date&&
'Table'[Quantity]<0
)
)
var _startdate =
CALCULATE(
MIN('Table'[Date]),
FILTER(
ALL('Table'),
'Table'[Date]>_lastdate
)
)
return
IF(
ISBLANK(_lastdate),
CALCULATE(
SUM('Table'[Quantity]),
FILTER(
ALL('Table'),
'Table'[Date]<=EARLIER('Table'[Date])
)
),
CALCULATE(
SUM('Table'[Quantity]),
FILTER(
ALL('Table'),
'Table'[Date]>=_startdate&&
'Table'[Date]<=EARLIER('Table'[Date])
)
)
)
Running Cost =
var _date = 'Table'[Date]
var _lastdate =
CALCULATE(
MAX('Table'[Date]),
FILTER(
ALL('Table'),
'Table'[Date]<_date&&
'Table'[Quantity]<0
)
)
var _startdate =
CALCULATE(
MIN('Table'[Date]),
FILTER(
ALL('Table'),
'Table'[Date]>_lastdate
)
)
return
IF(
ISBLANK(_lastdate),
CALCULATE(
SUM('Table'[Total Cost]),
FILTER(
ALL('Table'),
'Table'[Date]<=EARLIER('Table'[Date])
)
),
CALCULATE(
SUM('Table'[Total Cost]),
FILTER(
ALL('Table'),
'Table'[Date]>=_startdate&&
'Table'[Date]<=EARLIER('Table'[Date])
)
)
)
Measure:
avg 1 = SUM('Table'[Total Cost])/SUM('Table'[Quantity])
avg 2 =
var _maxdate =
CALCULATE(
MAX('Table'[Date]),
ALL('Table')
)
return
DIVIDE(
LOOKUPVALUE('Table'[Running Cost],'Table'[Date],_maxdate),
LOOKUPVALUE('Table'[Running Qty],'Table'[Date],_maxdate)
)
Resultado:
Saludos
Allan
Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.
@draj: ¿por qué no usar solo la medida rápida total en ejecución integrada en Power BI para crear esa columna? Y probablemente otra columna total en ejecución para El costo total. Entonces realmente es una situación de búsqueda mínima / máxima, ya que su última fecha tendrá los totales que desea.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
2 | |
1 |