Excel最常用的功能就是记录数据,把数据按照行列记录下来。这部分数据是源数据,是业务活动中最原始的流水账,作为后续操作的依据。为了从源数据中得出一定的结论,需要对源数据进行分析得出报表数据。在分析数据的过程中,除了用到根据实际情况变化的源数据,还存在不变的数据,例如各种比例、基数、基础信息,这里把这一类数据叫做基础数据。其实在业务系统中的数据也可以按这三种数据分类,只不过业务系统能提供友好的用户界面,Excel则完全面向数据。虽然Excel在用户界面上没法和业务系统相比,但对于数据的分类和处理方式和业务系统是一致的,遵循相同的规范会让数据处理起来更高效。
 
1、基础数据
    基础数据是指最基础的配置数据和基本信息数据,一般创建之后不会经常改动。例如组织架构、员工信息、产品分类、产品信息这些都属于基础数据。
基础数据又可以分为两类,单个基础数据和列表基础数据。单个基础数据一般是独立存在的单个值,例如各种基数。这种数据可以使用命名单元格的方式使用,后面做报表的时候只需要通过名称引用即可。列表基础数据是一类数据的集合,有多行或多列,例如组织架构信息、产品信息。对于列表基础数据可以用命名表格的方式使用。
    在命名表格中介绍了COLUMN函数,指定某个表格的列名,COLUMN函数就会返回该列的从1开始对应的序号。但是这个序号是从A列开始计算的,而VLOOKUP函数中第三个函数是指定从当前表格中的第1列开始计算的。如果在一行中存在多个表格,那么对于第二个表格使用COLUMN函数就会得到错误的列序号。所以建议基础数据纵向排列,不要在一行中存在多个表格。纵向排列还有一个好处,可以随意的添加和删除行,而不用担心删除其他表格的数据。纵向排列有一个弊端,定位数据会比较麻烦,需要较大幅度操作滚动条。但是这个弊端可以很容易避免,可以通过添加链接的方式。添加链接的方式会在后面的文章中介绍。
    实际维护基础数据时,建议对于较少量基础数据,可以把多个表格放在一个Sheet中。如果某一类基础数据的行数非常多,建议放到单独的Sheet中。
 
2、源数据
    源数据通常是手工输入,或者是从其他业务系统中导出的。如果是手工输入的,尽量减少录入的数据量,可以通过引用基础数据来实现自动填充一部分数据。另外为了避免手工输入数据发生错误,对于有一定限制的数据,建议使用设定数据类型和设定数据有效性(下拉列表)的方式进行限制。
    在设定源数据表格的列时,需要注意不要在一列中包含复合信息。服装有尺码和版型之分,例如衬衫36A表示36码A版。如果混合在一起,要分析出ABCY这四种版型中哪一个卖的最多,就没法直接用数据透视表分析出来了。为了给数据透视表提供正确的数据,源数据必须有列标题,不能有合并单元格,不能有空行。
    在设计源数据结构的时候,最需要注意的是不要使用维度项作为列,特别是把多个维度做成多表头的形式,如下图:
    这个是我看过的一个真实例子的缩减版(真实情况更复杂),把多个尺码和颜色做成列,导致后续分析的时候根本没法使用数据透视表。例如需要统计产品A的每个尺码各卖了多少件,或者按颜色统计,这个格式只能手工计算。正确的做法应该是这样:
    虽然这样导致数据行增多了,但后续分析起来更方便。
 
3、报表数据
    Excel提供了很强大的数据分析工具——数据透视表。以下面的数据作为源数据进行分析(使用命名表格,名称为销售源数据),要求得出每种产品按尺码统计的销售数量:
    切换到插入菜单,点击数据透视表。
    在弹出的对话框中输入命名表格的名称,如果没有使用命名表格,则使用鼠标选择要分析的数据区域,注意需要包含列标题。数据透视表的位置一般建议放在新工作表,避免对源数据所在的Sheet做修改。
    点击确定按钮之后,在新工作表中会展示如下提示信息:
    在工作表的右边会显示数据透视表的操作界面:
    通过拖动的方式将产品拖放到行区域,将尺码拖放到列区域,将梳理拖放到值区域。
    在工作表中会自动生成如下报表:
    可以把列标签和行标签修改为码数和产品。如果需要分析的是颜色,就把颜色拖到列区域,如果颜色和尺码都要分析,就可以同时把两个字段都拖到列区域。这个报表的格式就是前面提到的错误的源数据格式。
    在列区域中调整尺码和颜色的顺序,报表也会跟着改变。
    有了规范的源数据,就可以使用数据透视表通过拖拉的方式灵活得到想要的报表,根本不需要手工做报表。当然这里只是简单介绍数据透视表的用法,实际它的功能更强大。
 

Excel应该这么玩——5、三种数据:Excel也是系统的更多相关文章

  1. .Net MVC 导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) 通过MVC控制器导出导入Excel文件(可用于java SSH架构)

    .Net MVC  导入导出Excel总结(三种导出Excel方法,一种导入Excel方法) [原文地址] 通过MVC控制器导出导入Excel文件(可用于java SSH架构)   public cl ...

  2. JSON三种数据解析方法(转)

    原 JSON三种数据解析方法 2018年01月15日 13:05:01 zhoujiang2012 阅读数:7896    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blo ...

  3. Hibernate中的三种数据状态

    Hibernate中的三种数据状态(临时.持久.游离) 1.临时态(瞬时态) 不存在于session中,也不存在于数据库中的数据,被称为临时态. 比如:刚刚使用new关键字创建出的对象. 2.持久态 ...

  4. Docker 数据管理-三种数据mount方式

    可以在Container可写层存储数据,但是有三个缺点: 当Container销毁时,数据不能持久保存. Container的可写层和Container所在的主机紧耦合,不容易将数据移动到其他地方. ...

  5. 浅谈Hibernate中的三种数据状态

    Hibernate中的三种数据状态:临时.持久.游离 1.临时态(瞬时态) 不存在于session中,也不存在于数据库中的数据,被称为临时态. 数据库中没有数据与之对应,超过作用域会被JVM垃圾回收器 ...

  6. Unity常见的三种数据本地持久化方案

    做游戏的时候常常会有数据配置或者存读档的需求,本文整理了常用的几种解决方案,分别是Unity自带的PlayerPrefs类,XML文件和Json文件. 一. PlayerPrefs 这是Unity自带 ...

  7. Java三大框架之——Hibernate中的三种数据持久状态和缓存机制

    Hibernate中的三种状态   瞬时状态:刚创建的对象还没有被Session持久化.缓存中不存在这个对象的数据并且数据库中没有这个对象对应的数据为瞬时状态这个时候是没有OID. 持久状态:对象经过 ...

  8. mssql sqlserver 三种数据表数据去重方法分享

    摘要: 下文将分享三种不同的数据去重方法数据去重:需根据某一字段来界定,当此字段出现大于一行记录时,我们就界定为此行数据存在重复. 数据去重方法1: 当表中最在最大流水号时候,我们可以通过关联的方式为 ...

  9. .net中三种数据类型转换区别((int),Int32.Parse() 和 Convert.toInt32() )

    (typename)valuename,是通用方法: Convert类提供了灵活的类型转换封装: Parse方法,适用于向数字类型的转换. 例如,(int),Int32.Parse() 和 Conve ...

随机推荐

  1. Onethink1.1 钩子和插件的使用!

    Onethink下载请自行百度咯,安装也就几秒钟. 高手(略),只是针对和我一样需要了解的菜鸟. 主要讲一讲onethink插件的使用,因为这对我们的快速开发有帮助,所以记录一下,同时也希望能够帮助一 ...

  2. ios中调用友盟分享时qq可以分享但是微信失败,只显示文字,网页链接没有出现

    问题如下,最后在老大各种替换的情况下,找到了原因,是因为图片失效了,友盟分享微信时必须需要图片才可以,如果服务器图片失效,则会失败: 注意下面的图片是否能够获取???????????????????? ...

  3. Java Basic Exception

    异常处理经验小结之一:不要直接抛出InvocationTargetException  (转http://olylakers.iteye.com/blog/1137371) 在最近一段时间的工作中,积 ...

  4. PBOC2.0协议中电子存折/电子钱包中圈存交易流程

    通过圈存交易,持卡人可将其在银行相应账户上的资金划入电子存折或电子钱包中.这种交易必须在金融终端上联机进行并要求提交个人识别码(PIN)(无论电子存折还是电子钱包应用). 交易流程图如下: 1.1 发 ...

  5. Alamofire 的使用

    最近,AFNetworking 的作者Mattt Thompson提交了一个新的类似于 AFNetworking 的网络 基础库,并且是专门使用最新的 Swift 语言来编写的,名为:Alamofir ...

  6. 使用Ajax异步加载页面时,怎样调试该页面的Js

    前言-本人不是干前端的,所以有的名词不专业 在前端中,有时候会遇到这样的框架,http://172.17.11.151:8060/frontend/backend.html#1.html (通过解析U ...

  7. Tomcat catalina.out日志使用log4j按天分割

    由于tomcat catalina.out日志不会自动分割, 一.日志分割所需包在附近中 1. 压缩包中有三个jar包: log4j-1.2.16.jar tomcat-juli-adapters.j ...

  8. Spark java.lang.outofmemoryerror gc overhead limit exceeded 与 spark OOM:java heap space 解决方法

    引用自:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246 ...

  9. Qt在pro文件中加入带空格的路径(使用$$quote关键字)

    LIBS += -L$$quote(C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Lib) INCLUDEPATH += $$quote(C: ...

  10. git clone时,报403错误,完美解决方案

    首先命令行操作结果如下: root@zhiren-PowerEdge-T110-II:/zrun# git clone https://git.coding.net/xxxxxxxx/xxxx.git ...