1.2 规范的数据才有价值
一天,小张想对小饭馆的经营状况进行盘点(专业术语为数据分析),他首先想汇总一下当前“已完成”和“未完成”的订单总金额,用于了解自己的营业收入,包括已经获取的和即将获取的。
小张认为,小饭馆每天的经营数据已经存储于Excel表中,用计算机分析起来应该不成问题。然而,在真正操作起来后,小张发现事情完全没有想象的那么简单。
如果小饭馆的订单数据存储格式如图1-3所示,那么在Excel中,使用SUM()函数就能汇总出一份客户订单的总金额。
图1-3
然而,小张当时为了记录数据方便,客户订单的存储格式如图1-4所示。
图1-4
在图1-4中的客户订单中,“所定菜品”是以文本格式存储的,无法用Excel函数进行数据汇总。这时,小张才意识到,小饭馆的Excel数据记录和管理方式存在严重的问题。为了避免走更多的弯路,小张前来向笔者求助。
笔者在了解了他的问题后,半开玩笑地说:“混乱的数据不能产生价值,规范化的数据才有意义。如果你想彻底解决这个问题,就必须进行‘业务流程重组’,也就是所谓的Business Process Reengineering,简称BPR!”
笔者接着对小张说:“如果想避免将来在数据管理上出现更多问题,就要对数据进行规范化处理,必须使用数据库管理软件。”对于完全没有数据库基础知识的小张,笔者不能给他灌输太多数据库方面的术语,好在有实实在在的数据,再加上小张对Excel比较了解,笔者可以结合具体的数据将如何对数据进行规范化处理逐步演示给他看。
笔者继续对小张说:“为了能够方便、灵活地对数据进行分析和处理,如果能将客户订单表(图1-5中的‘T1订单编号’表)和菜品价格表(图1-5中的‘T3菜品价格’表)结合起来,将客户订单表中的一条记录拆分成多条记录,处理成图1-5中下方‘理想中的表’的格式,就可以轻松地汇总出每种菜品的销售数量和销售金额了。”
图1-5
在图1-5中,“理想中的表”中的数据来源如下。
· “份数”列来自“T1订单编号”表中的“所定菜品”列。
· “单价”列来自“T3菜品价格”表中的“单价”列。
· “金额小计”列是新生成的计算列(菜品的“份数”乘菜品的“单价”)。
在图1-5中,为了使数据便于Excel处理,我们对“T1订单编号”表中的DD-00012号客户订单进行处理,在经过拆分、组合、添加必要信息后,将其改造成了“理想中的表”中的3条记录。
读到这里,你也许会产生这样的疑问:“理想中的表”乍看起来并不十分理想啊!如果将客户订单以这种格式记录在Excel中,那么,本来一行数据就能解决的问题需要输入多行才能完成,并且其中的“客户姓名”“客户地址”“联系电话”“要求送餐时间”等信息要重复输入多次。
你的顾虑是符合逻辑的,但是,“理想中的表”并不需要手动重复输入数据,我们不会直接在这个表中输入客户的订单数据。这个表是为了便于数据汇总,通过Excel或Access的表关联技术“自动”生成的。