Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

LAMBDA: Método FIFO

Creo que me estoy volviendo un poco loco con las funciones LAMBDA :DD
Hoy he decidido intentar aplicar estas funciones para aplicar el método de valoración de inventario por el método FIFO
Asi que partiremos de una tabla de movimientos para un artículo, donde recogemmos sus entradas y salidas:


El primer cálculo será para obtener un vector con el stock vivo en cada movimiento.
En I4 escribimos:
=SCAN(0;
$E$4:$E$10*SI($C$4:$C$10="Entrada";1;-1);
LAMBDA(ac;itm;ac+itm))

La función SCAN recorre acumulando las unidades de entrada y salida, a las que hemos cambiado el signo para facilitar el correcto acumulado.

El siguiente paso es clave para el desarrollo, ya que con este cálculo obtenemos el consumo actual de cada entrada que exista, de acuerdo a las salidas.
(FUNDAMENTAL QUE LOS DATOS ESTÉN ORDENADOS CON UN CRITERIO TEMPORAL!)

En J4 la fórmulita LAMBDA...
=LAMBDA(vector;ValorReparto;
MAP(SCAN(0;vector;LAMBDA(ac;itm;MIN(itm;ValorReparto-ac;itm)));
SCAN(0;SCAN(0;vector;LAMBDA(ac;itm;MIN(itm;ValorReparto-ac;itm)));LAMBDA(acum;elto;acum+elto));
LAMBDA(prim;seg;SI(seg
Nuesta función LAMBDA requiere dos argumentos, un vector con los movimientos de unidades, y por otro lado el número de unidades totales que salen...
El argumento 'matriz' está compuesto de una función MAP con dos matrices:

matriz 1:

SCAN(0;vector;LAMBDA(ac;itm;MIN(itm;ValorReparto-ac;itm)))
que nos devuelve un vector solo con las unidades de entrada

matriz 2:

SCAN(0;SCAN(0;vector;LAMBDA(ac;itm;MIN(itm;ValorReparto-ac;itm)));LAMBDA(acum;elto;acum+elto))
nos devuelve un acumulado SOLO de las unidades de entrada (y sí, se debería haber empleado LET).
Estas serían las dos matrices/vectores anteriores:

El último argumento de MAP es la función LAMBDA:
LAMBDA(prim;seg;SI(seg
que se encarga de comparar y operar sobre los dos vectores anteriores, de tal forma que obtenemos el vectoro final con las unidades consumidas de cada compra!

Con este cálculo clave solo nos queda una sencilla resta en la celda K4:
=$E$4:$E$10*SI($C$4:$C$10="Entrada";1;0)-J4:J10
con lo que obtenemos las unidades pendientes de vender, esto es, el stock vivo no empleado vinculado a cada compra.


Acabamos en la celda L4 multiplicando unidades pendientes por precio, con lo que llegamos a nuestra valoración FIFO.

Seguramente se pueda lograr de una forma más directa con estas funciones, pero como ejercicio donde empleamos dos matrices en la función MAP, me parece muy interesante ;-)


This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

LAMBDA: Método FIFO

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×