Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hola a todos
Estoy tratando de calcular el valor de nuestro inventario en períodos de corte. La dificultad radica en el método del precio de costo promedio que se recalcula en cada nueva compra. Nuestro sistema ERP realiza un seguimiento de cada nuevo precio de coste medio (tabla 1). En la tabla2 tengo todos los entresijos de nuestro almacén.
Quiero calcular el valor de inventario en períodos de corte en el pasado basado en un SelectedValue de una tabla de fechas secundaria (=SelectedDate). Por ejemplo, selecciono el 30/09/2021 como período de corte. Aquí abajo puedes encontrar los pasos (creo) que debo seguir para encontrar mi resultado. Pero no encuentro un resultado correcto.
=> Filtrar tabla 1 en fecha <= SelectedDate y mantener solo la LASTDATE por artículo (estas están marcadas en rojo)
=> Tabla de filtros2 en fecha <= SelectedDate y resumir la cantidad de columnas por artículo
=> Multiplique el costo unitario del cuadro 1 por la cantidad del cuadro 2 para cada artículo
En el ejemplo de abajo esto me atraparía
Artículo 1 = > 12 * (50-10) = 480
Artículo 2 = > 5 * (10-1) = 45
Tabla 1 (Entrada de valor) = historial de precios de costo promedio
Artículo UnidadFecha de costo
1 10 01/09/2021
1 12 28/09/2021
1 11 15/10/2021
2 5 02/09/2021
2 6 10/10/2021
Tabla2 (Almacén)= todos los movimientos de entrada y salida de existencias
Fecha de cantidad del artículo
1 50 01/08/2021
1 -10 10/09/2021
2 10 31/08/2021
2 -1 01/09/2021
1 100 10/10/2021
Intenté seguir el código y esto funciona bastante bien a nivel de artículo, pero no a nivel total. Creo que la respuesta está dentro de una combinación de calculables y sumx/naturalinnerjoin pero no veo la luz.
Valor.Cutoff =
VAR SelectedDate = CALCULATE(SELECTEDVALUE(CutOffSelection[Fin de mes]))
VAR LastUnitCost = CALCULATE(sum('Value Entry'[Cost per Unit]),FILTER('Value Entry', 'Value Entry'[Posting Date] <=SelectedDate && MAX('Value Entry'[Posting Date])))
VAR LastUnitCostDate = calculate(MAX('Value Entry'[Fecha de contabilización]), FILTER('Value Entry','Value Entry'[Fecha de contabilización]<= SelectedDate))
Var costperunit = calculate(AVERAGE('Value Entry'[Cost per Unit]),FILTER('Value Entry','Value Entry'[Posting Date]=LastUnitCostDate))
VAR Quantity = calculate([W.Quantity],FILTER('Item Ledger Entry_Warehouse', 'Item Ledger Entry_Warehouse'[Fecha de contabilización]<=SelectedDate))
Resultado VAR= Cantidad*costoporunidad
devolver Resultado
¡Muchas gracias!
Jordy
Aquí está mi solución. Espero que sea útil.
Primero agregue una tabla Dim Articles al modelo. Relacionarlo con las tablas "Value Entry" y "Warehourse" en las columnas del artículo.
A continuación, cree la siguiente medida
Value.Cutoff =
VAR _selectedDate =
SELECTEDVALUE ( CutOffSelection[End of Month] )
VAR _table1 =
SUMMARIZE (
Articles,
Articles[Article],
"LastUnitCostDate",
CALCULATE (
MAX ( 'Value Entry'[Posting Date] ),
FILTER ( 'Value Entry', 'Value Entry'[Posting Date] <= _selectedDate )
),
"Quantity",
CALCULATE (
SUM ( Warehouse[Quantity] ),
FILTER ( Warehouse, Warehouse[Date] <= _selectedDate )
)
)
VAR _table2 =
ADDCOLUMNS (
_table1,
"LastUnitCost",
VAR _article = [Article]
VAR _lastDate = [LastUnitCostDate]
RETURN
CALCULATE (
MAX ( 'Value Entry'[Cost per Unit] ),
FILTER (
'Value Entry',
'Value Entry'[Article] = _article
&& 'Value Entry'[Posting Date] = _lastDate
)
)
)
RETURN
SUMX ( _table2, [Quantity] * [LastUnitCost] )
El archivo de muestra se ha adjuntado en la parte inferior.
Saludos
Equipo de soporte de la comunidad _ Jing
Si esta publicación ayuda, por favor acéptala como Solución para ayudar a otros miembros a encontrarla.
Check out the September 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.
User | Count |
---|---|
32 | |
30 | |
25 | |
24 | |
19 |