案例背景
最近又有一个学员找到我说他们的日报表实在是填不下去了,每天一张的日报表要从不同的搅拌站收集上来,然后通过复制粘贴汇总数据,工作量实在是有点大。我让他把日报表发给我看一下,看完以后我简直惊呆了,这年头竟然还有这样子的日报表。 他的日报表被设计成为一天一张工作表,这样子一年就会有365张的工作表,除此之外还要不断的去做出周报表、月报表、季报、年报,这简直是成了烦人的工作,但是他们公司十来年竟然坚持下来了。 这是典型的没有理解EXCEL三张表:表单、清单、报表的概念,把数据收集、数据整理、数据计算、数据分析所有的功能都整合到一张表去了。这也是日常办公中EXCEL表格的通病。为此我给他做了一些整理,让他们更加方便的去填写,汇总、计算、和分析。 方案设计 我首先针对表格进行切分,首先分为搅拌站填写表和管理部门汇总表。搅拌站填写表又分为三部分构成:第一部分是参数表,第二部分是日报数据,第三部分是收集数据。在日报数据里面的数据分为搅拌站级别数据和产品级别数据两级。 通过这样子的设计就能够使我们的用户只要在日报数据当中填写数据时,能调用参数表数据,并自动把数据汇总到收集数据。在日报数据表中可以设置规范性的控制要求,使数据能够达到规范填写,发送到管理部门后,通过管理部门的汇总表一键汇总。 接下来我们一起看一下详细设计吧, 详细设计 参数表设计: 在工作表中开设两个列,用于填写产品名称和搅拌站名称,并且通过自定义名称,实现动态的下拉列表,动态扩充的数据范围。 搅拌站: =OFFSET(参数表!$A$2,0,0,COUNTA(参数表!$A$2:$A$100),1) 产品名称:=OFFSET(参数表!$B$2,0,0,COUNTA(参数表!$B$2:$B$100),1) 日报数据表设计: 针对搅拌站级别的数据,我们单独设计在上方,针对产品的详细生产数据,我们设计一张明细表来存储。 为了规范数据填写我们在字段中设置数据有效性,以保证用户填写数据的规范性。 为了防止用户不小心破坏表格,我们对工作中实施工作表保护措施。 为了方便用户每天填写数据,我们加两段VBA代码来清除数据来和保存当天数据。 代码如下: Sub 清除数据() Range("日期")= "" Range("开盘时间")= "" Range("总罐车数量")= "" Range("启用罐车数量") = "" Range("计划总量")= "" Range("开盘时间") = "" Range("终盘时间")= "" Range("生产数量")= "" End Sub Sub 保存数据() fname = ThisWorkbook.Path &Range("站名") &Application.WorksheetFunction.Text(Range("日期"),"yymmdd") & ".xlsm" ThisWorkbook.SaveAs fname End Sub 收集数据 虽然用户填写的是表单数据,但是实际上我们真正要收集的是清单数据,因此通过一张工作表来实现表单转清单的一个数据收集,具体单元的公式如下: A2=IF($J2=0,"",INDIRECT(A$1)) B2:= =IF($J2=0,"",INDIRECT(B$1)) 其他列类似 I2:=日报数据!C7 J2: =日报数据!D7 管理部门汇总表设计:
操作流程 我们作为管理员,事先把数据基础数据配置好,然后发给每个搅拌站进行填写,每个搅拌站把每天填写的数据保存好以后,发到管理员管理员再通过数据分发汇总工具自动进行数据的汇总,整个过程变得变得更加的方便快捷,如果你工作中也有类似的表格数据收据,请尽快跟我联系,说不定我会帮你设计一套完整的解决方案。
|