进销存excel_用Excel制作简单的进销存系统「建议收藏」

进销存excel_用Excel制作简单的进销存系统「建议收藏」最近刚好帮一个朋友做一个进销存系统,因为使用者对电脑操作以及Excel应用能力较弱,我做的进销存系统没有用特别复杂的功能,非常有解决意义,我将手把手将你制作一个简单的进销存系统。需求描述朋友找人合伙开了一个女装店,想要用Excel记录每天的销售数据、定期的进货数据,以及定期盘点库存情况。朋友的合伙人对电脑操作、Excel数据管理能力较弱,前期购买过专用的进销存软件,但是经常会把数据搞乱,因此放弃了…

大家好,又见面了,我是你们的朋友全栈君。

最近刚好帮一个朋友做一个进销存系统,因为使用者对电脑操作以及Excel应用能力较弱,我做的进销存系统没有用特别复杂的功能,非常有解决意义,我将手把手将你制作一个简单的进销存系统。

需求描述

朋友找人合伙开了一个女装店,想要用Excel记录每天的销售数据、定期的进货数据,以及定期盘点库存情况。

朋友的合伙人对电脑操作、Excel数据管理能力较弱,前期购买过专用的进销存软件,但是经常会把数据搞乱,因此放弃了,希望使用Excel傻瓜式的记录销量。

框架设计

01、进货记录表:这是整个进销存报表的基础,所有的字段都从进货记录中生成

如图是进货记录表,使用的是智能表格,表格区域会随着数据的填写自动扩展,并延续设置好的格式。这个报表中的每个字段中的内容都需要手工录入,因为他们是后续销售记录表下拉菜单的数据源。

112777f9348327fbc8aae01a113d6bed.png

①为了防止数据录入错误,对【进价】、【定价】、【数量】进行了“数据验证”设置,如图所示,要求只能录入数字,而不能录入其他形式的数值。

ee012cb2117c47b0c003b98c5a561c96.png

②同时,设置出错警告,根据前期测试常见的错误,提示使用者修改录入的错误的内容。

f8231648eaaac1af0fbef36e164379d4.png

③J列的日期,使用日期函数将A、B、C列录入的年月日转化为标准的日期。

公式为=DATE([@年],[@月],[@日]),注意,因为数据区域已经转化为智能表格,所以公式中的引用为结构化引用。

④数据录入完成之后,永续需要点击右上角的刷新按钮,这是录制的一个宏,它的作用是全局刷新数据透视表,至于为什么要这样做,下文会进行讲解。

02、销售记录表:这是进销存报表的主要数据源

销售记录表中的字段要多一些,但是这个表中很多字段的内容填写起来却没有那么麻烦,填写方式分为三种:

80191ff26a071895ab0be2d060c35978.png

①手工录入:A、B、C列的年月日需要手工录入

②下拉菜单选择:产品和型号通过下拉菜单进行选择,这些下拉菜单的数据源正是进货记录表中的数据

00702b31c72269990cb45c5f1c22d4d5.png

③公式自动生成:进价和定价这两个字段,在进货的时候就已经确定了,他们和产品具有对应关系,所以通过公式自动进行匹配。=IFERROR(INDEX(产品清单区域,MATCH([@型号],产品清单!B:B,0),4),””)

19971ebef7e3037c72b3f0044c368985.png

03、产品清单表

这个表不需要填写内容,是自动生成的,属于过渡表,实际使用过程中,可以将其隐藏。那为什么要有这样一个表呢?

18629ea9cf76cdf34f25e12e952e7404.png

原因有几点:

①为了销售表中填写的产品信息和进货表中的一致,需要将进货表中的产品作成下拉菜单,但是进货表是一行一行的记录,存在很多重复,无法直接使用;

②还有其他信息,诸如进价、定价等,在进货表中与产品不是一对一关系,需要将其梳理成一对一关系,这样才可以使用匹配函数精确匹配。

这个表就是通过进货记录表创建数据透视表,进而实现去重、一对一关系,如图所示,是创建的其中一个产品列表。

5aa6cbfeda8ac27534a871535196a6d3.png

所以,现在你知道进货记录表中的刷新按钮的作用了吧?它是为了将新增的进货记录,刷新到数据透视中,从而生成新的产品清单。因此,没刷新一次,数据透视表的源数据会更新一次,产品清单也会变化。

那如何将这个变化的产品列表作为销售记录表中的下拉菜单呢?答案是使用动态区域函数Offset。

比如,针对型号,我们创建一个名称:

47fdf338ea552484ae8d0354c742daad.png

这个名称的引用位置为一个动态扩展的数据区域:

=OFFSET(产品清单!$J$1,MATCH(销售记录!$D2,产品清单!$J:$J,0)-1,1,COUNTIF(产品清单!$J:$J,销售记录!$D2),1)

通过这个动态区域,它总能获取数据透视表中的最新数据,因此,每一次在进货记录表中输入进货信息之后,点击刷新,菜单即可更新为最新的。

04、库存报表

这是进销存报表的核心,在这个表中,序号展示出每日的关键销售指标、每月的关键销售指标和详细的库存情况,并且这些数据都可以通过时间来进行筛选。

这个表中的除了时间数据,其他所有数据都是通过公式生成的,不需要填写。

bb2cec2bb149afed0c9704773718a48c.png

我只举一个例子:

某个产品的上月结存数量,这是一个多条件求和的公式,上月结存=上月进货-上月销售

5813a351a704577cad2c4c0be185288c.png

因此公式是这样的:

=SUMIFS(进货记录[数量],进货记录[产品],库存报表!B9,进货记录[年],库存报表!$D$2,进货记录[月],库存报表!$G$2-1) – SUMIFS(销售记录[数量],销售记录[产品],库存报表!B9,销售记录[年],库存报表!$D$2,销售记录[月],库存报表!$G$2-1)

第一个SUMIFS是求产品上个月的进货总量,第二个SUMIFS是求产品上个月的销售总量。只要你知道SUMIFS的用法,那公式的巨贪含义很容易理解,我这里就不一一解释了。

将各个字段中的公式补全,那么完整的进销存报表就完成了。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138320.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 随机森林算法及其实现(Random Forest)

    阅读目录1什么是随机森林? 2随机森林的特点 3随机森林的相关基础知识 4随机森林的生成 5袋外错误率(ooberror) 6随机森林工作原理解释的一个简单例子 7随机森林的Python实现 8参考内容回到顶部1什么是随机森林?  作为新兴起的、高度灵活的一种机器学习算法,随机森林(RandomForest,简称RF)拥有广泛的应用前景,从市场营销…

    2022年4月9日
    70
  • c语言入门教程–-4运算符

    c语言入门教程–-4运算符

    2021年3月12日
    222
  • python ipy模块_python各个模块讲解

    python ipy模块_python各个模块讲解IPy模块介绍IPy这个强大的Python第三方包主要提供了包括网段、网络掩码、广播地址、子网数、IP类型的处理等等功能。安装IPy模块使用调用模块使用IPy模块时,需要先调用模块定义网段查询网段的IP数量使用len()函数IP地址转换使用reverseName()函数对IP进行反向解析查看IP类型使用iptype()函数查看IP类型将IP格式转换为其他类型格式判断IP的网段网段的不同输出格式strNormal()输出

    2025年7月21日
    3
  • 戴尔服务器的远程开机和关机

    戴尔服务器的远程开机和关机手上有一台戴尔的DELLPowerEdgeR210服务器,闲来无事,研究了一下它的远程开机和关机。Dell的服务器默认都带BMC,这个用来做管理的网口和操作系统是共用的同一个网口(注意必需是第一个网口,即服务器上标有1的那个),只要BMC里设置的IP地址和操作系统的IP不一样就可以了。BMC的设置很简单,按以下步骤进行设置:1、在服务器启动时看到Press<Ct…

    2022年5月16日
    59
  • SQL数据库查询练习题及答案

    SQL数据库查询练习题及答案题目:设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。四个表的结构分别如表1-1的表(一)~表(四)所示,数据如表1-2的表(一)~表(四)所示。用SQL语句创建四个表并完成相关题目。查询问题:1、查询Student表中的所有记录的Sname、Ssex和Class列。2、查…

    2022年4月30日
    102
  • 字符串转换系列三:VARIANT、COleVariant 和_variant_t

    字符串转换系列三:VARIANT、COleVariant 和_variant_tVARIANT、COleVariant和_variant_t  在OLE、ActiveX和COM中,VARIANT数据类型提供了一种非常有效的机制,由于它既包含了数据本身,也包含了数据的类型,因而它可以实现各种不同的自动化数据的传输。下面让我们来看看OAIDL.H文件中VARIANT定义的一个简化版:structtagVARIANT{ VARTYPEvt; 

    2022年7月18日
    17

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号