在公司中,进销存管理是一件经常要做的事,举一个简单的例子,下面是公司的物品出入库领取情况,如下所示:
第1列是发生的时间,第2列是发生的业务类型,是入库,还是出库,第3列是哪些物品,第4列是发生的数量。
每天的进出都这么登记,现在我们设计一个公式,可以直接汇总出库存。
?首先我们用一个公式,计算不重复的物品
在G2单元格输入公式:
=INDEX(C:C,SMALL(IF(MATCH($C$2:$C$10000&"",$C$2:$C$10000&"",0)=ROW($2:$10000)-1,ROW($2:$10000),4^8),ROW(1:1)))&""
因为是数据公式,所以按CTRL+SHIFT+ENTER进行计算,然后向下拖动
这个公式很复杂,很难理解,可以不用记,它的功能是提取不重复值的公式,碰到需要的时候,直接拿出来套用,这样的好处就是,当C列有新增一个物品时,新增的物品在G列也会直接出来。
?使用条件求和函数,分别进行入库和出库的数量
在H2单元格中输入公式:
=IF($G2="","",SUMIFS($D:$D,$B:$B,H$1,$C:$C,$G2))
在I2单元格中输入公式:
=IF($G2="","",SUMIFS($D:$D,$B:$B,I$1,$C:$C,$G2))
在J2单元格中输入公式:
=IFERROR(H2-I2,"")
向下填充公式,可以多填充几行,得到的结果如下所示:
现在问题来了,如果我们只想知道本月的入出库情况,以前的就期末盘存,或者说期初库存,这种形式,该如何设计公式?
我们在E列设置一个辅助列,判断时间是否是本月
输入的公式是:
=IF(YEAR(A2)&MONTH(A2)=YEAR(TODAY())&MONTH(TODAY()),"是","否")
然后在H2输入公式:
=IF(G2="","",SUMIFS(D:D,B:B,"入库",C:C,G2,E:E,"否")-SUMIFS(D:D,B:B,"出库",C:C,G2,E:E,"否"))
I2输入公式:
=IF($G2="","",SUMIFS($D:$D,$B:$B,I$1,$C:$C,$G2,$E:$E,"是"))
J2输入公式:
=IF($G2="","",SUMIFS($D:$D,$B:$B,J$1,$C:$C,$G2,$E:$E,"是"))
K2输入公式:
=IFERROR(H2+I2-J2,"")
这样这个表格里面统计的入库和出库,就只是本月产生的数量了,月初库存,也就是上个月的盘存情况了。