库管易

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫描二维码登录本站

查看: 11844|回复: 8

怎样制作进销存Excel表格模版,库存管理表格制作办法

[复制链接]
  在库管易仓库社区论坛看见好多要求库存进销存的EXCEL 表格模版,仗着自己有点会计知识,也在这摆弄摆弄。(这个表格计算的单位成本方法是用移动平均法)

  首先在表格把标题填上:

ABCDEFGHIJK
1交易库存
2日期产品摘要数量单价总价格数量单位成本总成本交易利润最后交易
3

  在表格上的 A 到 E 列,就是每次进货/销货的时候填写的。进货数量填正数,单价填进价;销货数量填负数,单价填售价。同类型产品产品名称必须一致,另外,交易必须按照时间顺序填写。

  一、交易

  总价格:F3=IF($B3=“”,“”,$D3*$E3)

  简单通过交易数量和交易单价计算总价格,加上的IF公式是为了在没输入B3(产品)之前不显示。

  二、库存

  数量:G3=IF($B3=“”,“”,SUMPRODUCT(($B3=$B$2:$B3)*1,$D$2:$D3))

  如果B3是空值,返回空值;否则,判断从B2单元格一直到该行B列单元格是否等于该行B列单元格(是否同一产品),如果是,加总D列中的数量,得出累计库存。

  单位成本:H3=IF($B3=“”,“”,IF($G3=0,0,ROUND($I3/$G3,2)))

  只是简单通过总成本和数量计算单位成本(取两个小数位),加上两个IF,是为了在没输入B3(产品)之前不显示,和在数量为0时不返回错误。

  总成本:I3{=IF($B3=“”,“”,IF(COUNTIF($B$2:$B3,$B3)=1,0,INDIRECT(“I”&MAX(IF($B$2:$B2=$B3,

  ROW($B$2:$B2)))))+IF($D3>0,$F3,$D3*INDIRECT(“H”&MAX(IF($B$2:$B2=$B3,ROW($B$2:$B2))))))}
      数组公式,输入的时候不输{},从=号开始输到最后的),不按回车,同时按 Ctrl +  Shift + 回车。

  把公式拆开分析,就没显得那么复杂了。

  先不考虑数组,最外面的 IF 公式是是为了判断输没输入B3。后面是两个 IF 加总的。

  {=IF($B3=“”,“”,IF(COUNTIF($B$2:$B3,$B3)=1,0,INDIRECT(“I”&MAX(IF($B$2:$B2=$B3,ROW($B$2:$B2)))))

  +IF($D3>0,$F3,$D3*INDIRECT(“H”&MAX(IF($B$2:$B2=$B3,ROW($B$2:$B2))))))}


  第一个IF是找出上一笔交易后的总成本:IF(COUNTIF($B$2:$B3,$B3)=1,0,INDIRECT(“I”&上次交易的行数))

  COUNTIF($B$2:$B3,$B3)=1,就是如果从$B$2到该行B列,该产品只出现了一次,代表没有上次交易,返回0。

  不然,找出上次交易的行数,通过INDIRECT参数,返回该行H列(总成本)的数值。我们最后再说怎么找出上次交易的行数(MAX(IF($B$2:$B2=$B3,ROW($B$2:$B2)))),这也是实际上要用到数组的地方。

  第二个IF是考虑该交易该加/减的成本:IF($D3>0,$F3,$D3*INDIRECT(“H”&上次交易的行数))

  就是如果是购货(D列是正数),直接用该次交易的价格(F列);如果是销货,就要判断上次交易后的平均价(H列),在乘以这次交易的数量。由于数量已经是负数,就不用再用减号了。要注意的是,由于销货必须找到上次交易后的平均成本,再输入销货之前必须要有同产品交易的进货。

  MAX(IF($B$2:$B2=$B3,ROW($B$2:$B2))) 就是找出上次交易行数的函数,实际上是数组公式 {=MAX(IF($B$2:$B2=$B3,ROW($B$2:$B2)))}

  {=IF($B$2:$B2=$B3,ROW($B$2:$B2))}  就是从B2到该行上一行,如果产品和该行的一样,就返回该行的行数。

  比如公式复制到I6,{=IF($B$2:$B5=$B6,ROW($B$2:$B5))},就会开B2,B3,B4,B5是否跟B6一样,假定B3,B5都一样,这一段的IF公式就会返回{0,3,0,5} (0代表FALSE)。再用MAX({0,3,0,5}),就会是最后一行同产品的行数5了。

  三、交易利润

  交易利润:J3=IF(OR($B3=“”,$D3>0),“”,($E3-$H3)*-$D3)

  简单通过交易数量和交易单价和成本计算交易利润,加上的IF公式是为了在没输入B3(产品)之前,和在购货时都不显示。

  四、最后交易

  最后交易:K3=IF(AND($B3<>“”,COUNTIF($B$2:$B3,$B3)=COUNTIF($B:$B,$B3)),“是”,“”)

  加上这列是为了方便筛选的时候可以直接出各个产品的最后库存。判断的方法也比较简单,就是计算从一开始到该行该产品出现的次数,和整个B列该产品出现的次数,如果两者一样,就代表是该产品最后一列了。

  利用这个表格,你还可以简单通过数据透视表或者 SUMIF / SUMPRODUCT 公式汇总各个产品按时间的进销。

  或者可以简单的通过数据有效性,限制产品名称的输入。
回复

使用道具 举报

{:soso_e100:}
回复 支持 反对

使用道具 举报

谢谢楼主的分享。
回复 支持 反对

使用道具 举报

楼主是真正“授人以渔”啊,感谢了!
回复 支持 反对

使用道具 举报

来学习学习,顶一下
回复 支持 反对

使用道具 举报

真心的是帮助人学习,感谢
回复 支持 反对

使用道具 举报

支持楼主谢谢楼主分享
回复 支持 反对

使用道具 举报

赚分
支持楼主谢谢楼主分享
回复 支持 反对

使用道具 举报

很好的文章,楼主辛苦,谢谢分享
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|仓库管理网

GMT+8, 2024-4-26 20:17

Powered by 库管易

KuGuanYi.Com

快速回复 返回顶部 返回列表