cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Syndicate_Admin
Administrator
Administrator

Precio de coste medio del inventario por período de corte (selectedvalue/sumx/naturalinnerjoin/calcultables)

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

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

@DelVosa

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.

vjingzhang_0-1660638620775.png

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] )

vjingzhang_1-1660638894212.png

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.

Helpful resources

Announcements
November 2022 Update

Check it Out!

Click here to read more about the November 2022 updates!

Difinity Conference

Difinity Conference 2022

Difinity is the largest Microsoft Data, AI, Power BI, Power Platform and Business Applications Conference in New Zealand.

European Share Point Conference

European Share Point Conference

This conference returns live and in-person in Copenhagen this 28 November-01 December with 4 Microsoft Keynotes, 9 Tutorials, and 120 Sessions.

Microsoft 365 Conference â__ December 6-8, 2022

Microsoft 365 Conference - 06-08 December

Join us in Las Vegas to experience community, incredible learning opportunities, and connections that will help grow skills, know-how, and more.