2015年
财会月刊(25期)
会计电算化
基于EXCEL的进销存信息管理系统构建

作  者
侯志才

作者单位
(东华理工大学经济与管理学院,江西抚州 344000)

摘  要

      【摘要】企业利用EXCEL开发进销存系统,不但可以结合自身的实际经营情况“量身定做”,而且可以节约企业的运营成本。本文通过实例重点探讨了利用EXCEL开发进销存系统的思路,同时分析了系统管理构建以及开发过程所用到的EXCEL相关技术。
【关键词】EXCEL;进销存;函数;VBA

当前,商品化的通用型软件很难解决企业在经营过程所碰到的特殊问题。对于资金实力不足的小微企业来说,利用EXCEL开发适合自身经营特点的信息管理系统,一方面可以实现管理的效率性,另一方面可以节约企业的运营成本。本文通过实例重点分析了通过EXCEL构建进销存信息管理系统的设计思路,以及开发过程所用到的EXCEL相关技术。
一、进销存管理系统构架分析
进销存管理系统的主要作用是帮助企业掌握在生产经营过程中的进货、销售、库存以及应收应付等信息。
实例背景介绍:某企业为手机经销商,销售的手机有多种品牌和型号,存在销售退回和销售折扣等情况,该企业想要通过系统及时掌握手机的库存信息、销售信息、应收账款信息以及销售利润。根据企业的需求将系统共设置客户产品信息表、入库信息表、销售信息表、应收账款查询表、库存信息查询表、利润统计表等六个模块。
系统管理员通过对客户产品信息表进行初始化,录入客户信息和产品信息;采购业务发生时通过入库信息表来录入,入库信息表中的产品信息取自客户产品信息表;发生销售业务时,相关的销售信息通过销售信息表进行录入,销售信息表中的客户信息取自客户产品信息表,同时在销售信息表中形成销售账款回收信息;信息查询主要包括应收账款查询和库存信息查询,应收账款查询数据来自销售信息表,库存信息查询数据来自入库信息表和销售信息表。
二、系统模块构建
1. 客户产品信息模块。该模块主要记录客户信息和产品信息,客户信息表分别设置客户名称、联系地址、联系电话等关键字段,产品信息表分别设置产品名称、产品型号、进货价格等关键字段。系统需要修改或者增加客户及产品信息时,只需要在该模块进行修正或录入即可。为了确保系统的稳定性和准确性,当某客户或产品已有业务发生时,原则上不允许再对该客户或产品进行信息的修改。详见图1:
2. 入库信息模块。该模块主要存放企业的产品入库信息,因此可以设置入库时间、产品型号、产品品牌、入库数量、单位、进货价格以及进货金额等字段。入库时间可以根据实际情况来输入,产品型号信息取自基础信息模块,通过单元格的“数据有效性”进行限定。由于涉及跨表取数,可以组合利用INDIRECT函数,打开“数据”菜单中的“有效性”子菜单,在“设置”标签中有效性条件选择“序列”,在“来源”对话框输入“=INDIRECT("客户产品信息!$F$4:$F$65536")”。产品品牌可以通过产品型号进行查询,利用VLOOKUP函数实现,为了避免“产品品牌”列区域出现空值或者错误的值,必须先通过ISNA函数进行判断。以其中的C4单元格为例,该单元格填写公式“=IF(ISNA(VLOOKUP(B4,客户产品信息!F:G,2,0)),"",VLOOKUP(B4,客户产品信息!F:G,2,0))”,即先判断B4单元格是否有数据,如果没有则返回一个空值,如果有数据则利用VLOOKUP函数进行查找。“进货单价”区域公式和“产品品牌”相似,只需改变其中的参数即可;由于“进货金额”在计算时有可能会取到前面单元格的空值或者错误值,所以必须先用ISERROR函数进行判断,再进行金额的计算,比如B4单元格公式为“=IF(ISERROR(D4∗F4),"",D4∗F4)”。详见图2:

 

 

 


3. 销售信息模块。销售信息模块主要体现企业销售方面的信息,包括销售时间、客户、产品销售信息(型号、品牌、数量)、产品折扣(指一次进货达到一定数量后可以赠送一定数量的产品)信息(型号、品牌、数量)、金额区(销售单价、销售收入、应收金额、实收金额、应收账款)等信息。为了后期销售利润的统计,增加“销售成本”一栏,但是该信息只能由销售方掌握,因此通过隐藏该列以达到隐藏信息的目的。通过该模块销售方不但可以开具销售单据,同时也可以查询单个单据的应收账款情况。模块中的“销售时间”用户可以直接输入,为了保证查询的一致性,最好按照统一的时间格式进行输入,例如用“YY-MM-DD”。销售信息区和折扣信息区中的“型号”单元格区域用跨表的数据有效性进行限制,在“数据有效性”的“来源”对话框输入“=INDIRECT("客户产品信息!$F$4:$F$65536")”,“品牌”单元格区域利用逻辑判断函数IF结合查找函数VLOOKUP实现。例如C5单元格“=IF(ISNA(VLOOKUP(C5,客户产品信息!F:G,2,0)),"",VLOOKUP(C5,客户产品信息!F:G,2,0))”。其他信息如“数量”、“销售单价”不做限定,可以在单元格中直接输入,“销售收入”、“应收金额”、“实收金额”、“应收账款”等通过建立单元格间简单的数学勾稽关系即可自动得出数据。其中“销售成本”要考虑是否存在销售折扣的情况,如果存在就需要加上销售赠送的产品成本,如果不存在就直接计算销售产品的成本,因此需要利用逻辑判断函数IF 结合查找函数VLOOKUPJ进行计算。本例中计算成本的单元格N5输入公式“=IF(F5="",VLOOKUP(C5,客户产品信息!F:H,3,0)∗E5,(VLOOKUP(C5,客户产品信息!F:H,3,0)∗E5+(VLOOKUP(F5,客户产品信息!F:H,3,0))∗H5))”进行计算。详见图3。
4. 应收账款查询模块。根据系统设计的思路,应收账款查询的信息取自于“销售信息表”。在取回信息的基础上,为了实现按条件查询的灵活性,系统设置了应收账款按照“销售时间”、“客户”、“型号”、“品牌”等查询条件。查询完毕后,可以对当前的查询数据进行清空处理。综合上述思路,在“应收账款查询表”设置“应收账款条件查询”和“清空查询”两个窗体按钮,以及一个“应收账款数”计算单元格区域。详见图4。“应收账款条件查询”按钮通过宏进行控制,代码(根据系统实际)如下:
Sub 应收账款查询(  )
    Sheets("销售信息").Select
    Range("A4:E7000,I4:M7000").Select
    Range("M7000").Activate
    Selection.Copy
    Sheets("应收账款查询").Select
    Range("A7").Select
    ActiveSheet.Paste
    Range("A7:J7").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
End Sub
“清空查询”按钮的宏代码如下:
Sub 应收账款查询清除(  )
    Range("b4:l4").Select
    Selection.ClearContents
    Range("C8:D8").Select
    Selection.ClearContents
    Rows("7:65536").Select
    Selection.ClearContents
    Range("e5").Select
  End Sub
“应收账款数”通过建立公式“=SUBTOTAL(109,J8:J7000)”,按照条件进行分类汇总求和。
5. 库存信息查询模块。通过该表使用者可以查询商品的库存信息,建立的方法类似应收账款查询模块。通过窗体建立“库存查询”以及“清空查询”两个按钮,然后通过宏进行控制。详见图5。本例的“库存查询”宏代码如下:
Sub 库存信息查询(  )
    Sheets("客户产品信息").Select
    ActiveWindow.SmallScroll Down:=-3
    Range("F4:G100").Select
    Selection.Copy
    Sheets("库存信息查询").Select
    ActiveWindow.SmallScroll Down:=-21
    Range("A5").Select
    ActiveSheet.Paste
    Range("A4:E4").Select
    Application.CutCopyMode = False
    Selection.AutoFilter
End Sub
“清空查询”的宏代码为:
Sub 库存查询清空(  )
    Range("A5:B1000").Select
    Selection.ClearContents
End Sub

 

 

 

 


6. 利润统计模块。该表主要设置了销售收入、销售成本、销售毛利等字段。 其中销售总利润查询区域中的“销售收入”数据取自“销售信息表”,通过SUBTOTAL(  )函数进行统计。本例中A8单元格输入“=SUBTOTAL(109,销售信息!J5:J65536)”,参数109表示对分类汇总进行求和。“销售成本”数据同样取自“销售信息”表,通过条件求和SUMIF(  )函数进行计算,B8单元格输入“=SUMIF(销售信息!N5:N65536,"<9e+307")”。本例中由于“销售信息表”中的“销售成本”通过公式计算得出,有可能其中的某些行中存在空值的情况,导致“销售成本”一项显示为“#N/A”,通过参数“<9e+307”可以排除这些单元格,只对有数据的单元格进行求和;“利润总额”单元格中的数据为“销售收入”减去“销售成本”。销售利润按日期查询区域设置了“日期”字段作为统计条件,该单元格通过跨表数据有效性的引用,日期信息取自“销售信息表”,建立方法同前述内容。在本例中“销售收入”单元格B16输入“=SUMIF(销售信息!A5:A65536,A16,销售信息!J5:J65536)”,“销售成本”单元格C16输入“=SUMIF(销售信息!A5:A65536,A16,销售信息!N5:N65536)”。详见图6。

 

 

 

 

 

三、结论
应用EXCEL构建进销存管理信息系统的关键是规划出系统模块以及模块之间数据勾稽关系,同时在系统搭建过程中正确地使用EXCEL函数,同时编写必要的VBA程序片段。虽然本文提出了一些方法,但是模型本身可能还存在不足之处,希望读者能提出相关建议。
主要参考文献
张斓.Excel在小微企业进销存管理中的应用[J].会计之友,2013(23).
【基金项目】江西省教育科学“十二五”规划课题项目(编号:14YB040)