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. 解决Winform应用程序中窗体背景闪烁的问题

    本文转载:https://my.oschina.net/Tsybius2014/blog/659742 我的操作系统是Win7,使用的VS版本是VS2012,文中的代码都是C#代码. 这几天遇到一个问 ...

  2. iOS文档注释

    Eclipse和IntelliJ IDEA系的IDE都有自动生成文档注释的功能,Xcode虽然安装了VVDocument,但是仍然感觉注释的功能不是很完善,于是今天整理了一下书写文档注释的一些用法. ...

  3. 用Struts2拦截器实现文件下载前的验证

    思想:用户登录后,将登录信息存储在session中,每次需要验证时,取出来验证 缺陷:没有实现多用户登录时的情况 实行步骤: 登录信息的存储: ActionContext actionContext ...

  4. Node.js的学习路线

    http://www.admin10000.com/document/4624.html 顺便关注一下博客:http://blog.fens.me/series-nodejs/ php socket框 ...

  5. Oracle数据库字符集试验

    对于初学者我们可以理解字符集就是一种字符编码方式,试想人可以直接语言进行交流,使用文字进行记录,而计算机却不认得我们人类创立的文字,计算机只认得0和1这样的二进制代码.当我们要通过计算机记录文字信息的 ...

  6. npm link 安装本地模块,将本地模块cli化

    第三方学习地址 http://mp.weixin.qq.com/s?__biz=MzAxMTU0NTc4Nw==&mid=2661157390&idx=1&sn=6d96e54 ...

  7. PHP 生成PDF

    一个项目中需要用到网页生成PDF,就是将整个网页生成一个PDF文件, 以前也用过HTML2PDF,只能生成一些简单的HTML代码,复杂的HTML + css 生成的效果惨不忍睹, 百度了一下,发现有个 ...

  8. MySQL优化性能my.cnf详解

    提供一个MySQL 5.6版本适合在1GB内存VPS上的my.cnf配置文件(点击这里下载文件): [client] port=3306 socket=/tmp/mysql.sock [mysqld] ...

  9. eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错? java.lang.ClassNotFoundException: com.branchitech.app.startup.AppStartupContextListener java.lang.ClassN

    eclipse java项目中明明引入了jar包 为什么项目启动的时候不能找到jar包 项目中已经 引入了 com.branchitech.app 包 ,但时tomcat启动的时候还是报错?java. ...

  10. hibernate学习(6)——加载策略(优化)

    1. 检索方式 1  立即检索:立即查询,在执行查询语句时,立即查询所有的数据. 2 延迟检索:延迟查询,在执行查询语句之后,在需要时在查询.(懒加载) 2.  检查策略 1  类级别检索:当前的类的 ...