多产品先进先出法公式理解
一、前提:以表《公式例子》中的F9单元格所在的公式为基准进行理解。
出货价值公式如下:
=SUM(MMULT(TEXT(SUMIF(OFFSET(A$3,,,ROW($1:6)),A9,B$3)-SUMIF(A$3:A8,A9,
{0,1}*E9,"[>"&B$3:B8&"]""0"&B$3:B8&""";[<0]!0;0")*IF(A$3:A8=A9,C$3:C8),{1;-1}))
二、公式计算过程详解
步骤1、OFFSET(A$3,,,ROW($1:6)),得到如下一系列数组:A$3:A3、A$3:A4、A$3:A5、A$3:A6、A$3:A7、
步骤2、然后利用sumif(前一步骤,A9,B$3),即取出每一次购货时产品“碕乐三玩具s”累计进货量,形成如下一{50;50;50;50;60;100},我们可以看看第一个50是怎么得到的——即通过函数sumif(A$3:A3,A
步骤3、前一步骤-SUMIF(A$3:A8,A9,E$3),其中SUMIF(A$3:A8,A9,E$3)是为了取出本次“碕乐三玩具s”出货前利用步骤2的结果减去累计出货量,得到一列数组:{10;10;10;10;20;60}
步骤4、前一步骤-{0,1}×E9,其中{0,1}×E9得到一列数组{0,15},其中E9为本次出货量,则得到如下两列数组:
步骤5、TEXT(前一步骤,"[>"&B$3:B8&"]""0"&B$3:B8&""";[<0]!0;0"),本步骤主要意图是对上表中C1、C2列与若 1) 剩余量>购入量,则取购入量;
2) 0<剩余量<购入量,则取其本身;
3) 剩余量<0,则取0。
此目的的达到,本公式通过text函数中第二参数format_text设置为三个区域的条件值格式代码:[>本次购入量]0本
步骤6、IF(A$3:A8=A9,C$3:C8),此步骤意在取出各次进货时的单价,同时这一步骤还能剔除掉不是"碕乐三玩
步骤7、步骤5×步骤6得到如下数组,此数组分别表示本次出货前各进货批次还剩余的价值(A1表示)、出货后各A1-A2 便是本次出货的价值。
步骤8、MMULT(前一步骤{1;-1}),此步骤意在实现A1-A2,相应计算过程如下:
步骤9、sum(前一步骤),利用sum求和最后的数据得出9050。
除了。
值公式如下:
、A$3:A5、A$3:A6、A$3:A7、A$3:A8、
三玩具s”累计进货量,形成如下一列数组:
3,A9,B$3)=50,其它的数值依次类推而来。
了取出本次“碕乐三玩具s”出货前该产品累计出货量,此例中为40,然后
出货量,则得到如下两列数组:
要意图是对上表中C1、C2列与每次进货的进货量分别比较,
代码:[>本次购入量]0本月购入量;[<0]!0;0(其中!为强制转换为0)
式理解过程一览表
8,A9,E$3)-
),{1;-1}))
一步骤还能剔除掉不是"碕乐三玩具s"的购入量,因为该公式取出它们的单价为0。
余的价值(A1表示)、出货后各进货批次还剩余的价值(A2表示)。