合并汇总大量数据表的一般方法

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:chengbf0917
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:系统的、规范的数据库是大数据分析的基础,但在实际中,很多政府机构和企业都没有建立数据库的条件,大量数据以Excel表格的形式存放在管理人员的电脑上,查询、汇总极为不便。如何整理规范统计数据是一个常见的、典型的棘手问题,在整理大量历史数据的时候,表结构的变化给数据使用者造成了很大的麻烦,传统的Excel函數、VBA编程等方法面对这种情况也是束手无策,这个时候我们可以使用微软的商务软件PowerBI,从分析袁结构入手,方便地进行数据的汇总和整理工作。
  关键词:数据汇总;商务智能;大数据分析;合并历史数据;表结构;逆透视;规范化
  中图分类号:TP3-05 文献标识码:A
  文章编号:1009-3044(2019)33-0257-04
  在工作中我们经常会遇到合并多个数据表的情况,比如多个历史时期数据表的合并,多个分公司报表的汇总,当数量不多时,我们可以依次打开各个数据表,手动复制粘贴至一张表中,但如果涉及的数据表太多时,这个方法就行不通了,或者说过于烦琐,比如说有时候刚整理好各月工资,又需要整理各月奖金,那么之前进行的所有步骤又需要再做一遍了。当这样的重复性工作我们做了好多年之后,就应该考虑其他的方法了,我们需要在不打开文件的情况下提取其中的数据,把人从烦琐的数据整理工作中解放出来。
  那么怎么办呢?过去我曾尝试通过VBA编程提取数据,对于结构完全一致的报表这个方法是行得通的,但是这里有一个问题,由于制表人不同或者表结构变化等原因,每张表中的同一个数据可能并不在同一个位置,比如说有的表里工资在单元格B2,有的表里可能在B3,或者C2,或者其他什么地方,有时候发给分公司的工整的报表,收上来的时候却变得花花绿绿的,有的甚至面目全非,填表人会随意地删行、加行、删列、加列、调整行列顺序、合并单元格、修改单元格格式,等等,不一而足,原因是他那里有特殊情况,或者为了方便填报等,但是无规矩不成方圆,随意更改表结构方便了填表人,却给数据整理工作带来了大麻烦,需要汇总整理的数据表必须严格限定报表格式,最好是在下发报表的时候就锁定表结构,但是我们不能指望每一个报表设计者都会锁定操作,或者数据表的汇总者和设计者不是同一个人,汇总人收到各张报表的时候发现表结构已经不一致了,这个时候,VBA也是无可奈何的。
  这时候,我们可以用Excel插件power query解决这个问题。PQ是微软公司的商务智能Power BI工具之一,它和powerpivot构成了PBI的核心,它的操作原理和语法类似于SQL语言和OLEDB数据连接,但使用起来更加灵活简单,是面向普通的数据工作者的大众化BII具,不需要编写太多复杂烦琐的代码,就可以轻松实现数据汇总分析。PQ是一种入门级的大数据分析工具,我认为以后会是数据工作者必备的技能之一,就像现在的Excel一样基础。
  在这篇文章中我以一个例子通俗易懂地介绍一下用PQ进行数据表合并的一般思路和操作过程。
  1问题的提出
  假如我们需要整理北京市各市区社会消费品零售额的历史数据,现在有2007年2月-2019年6月的100多张数据表f数据来源:北京市统计局),我们对比一下第一期和最后一期报表的表结构,如图1所示。
  总结一下2019年6月期报表中表结构的几处变化:
  1.1从行来看
  1)表头由两行变为一行;
  2)取消了四大功能区;
  3)“亦庄开发区”更名为“北京经济技术开发区”;
  4)崇文区、宣武区分别合并到东城区、西城区;
  5)密云、延庆两县撤县设区;
  6)门头沟区位置提前;
  7)市区名称前加上了空格。
  1.2从列来看
  第2、3列数据互换位置,从“本月、累计、本月增速、累计增速”变成了“本月、本月增速、累计、累计增速”。
  由于表结构的变化,所有数据的位置均发生了改变,用VBA取固定位置的数据显然不可取,而用PQ,可以分步实现数据汇总。
  2第一步:获取数据源
  首先需要整理出“数据源表”,这张表里列出了各个数据表的基本情况,需要说明几点:
  1)一共有138个excel文件,统一存放在“根目录\数据源”文件夹中,根目录根据存放路径自动调整,比如我现在用的根目录是:
  PQ会自动从“F:\20190810合并数据表\数据源\200702.xl-sx”“F:\20190810合并数据表\数据源\200703.xlsx”等文件中取数,而下载压缩包后可解压存在任一地址,比如放在“D:\P0练习/合并数据表”中,PQ就会自动从“D:\PQ练习\合并数据表\数据源\200702.xlsx”“D:\PQ练习\合并数据表\数据源\200703.x1-sx”等文件中取数,不用手动修改。
  2)在十多年的时间里,报表结构经过了多次变化,二维表的表结构包括主栏(甲栏)、宾栏(乙栏、表头)两个方面,数据源表中列出了每一个excel文件中报表的甲栏版本和宾栏版本,这需要用户自己去总结,PQ就是根据文件位置和甲栏、宾栏版本去各个文件中的特定单元格取数。
  3第二步:获取表头行数
  从2013年2月开始,数据表的表头由两行变为了一行,先总结出各甲栏版本的表头行数,然后让各excel文件自动查找对应的表头行数信息,实现原理类似于excel工作表函数vlookup。
  这一步是为了便于理解接下来的处理过程,当PQ熟练以后可省略这一步。
  4第三步:批处理表格——二维表转一维表
  这是数据汇总的最关键一步:维度转换,要想把不同结构的数据表汇总在一起,所需要做的不是简单的表格的拼接(追加),因为不同时期的报表中各行、各列意义不同,比如下面这两张表拼接在一起就出错了,因为后一张表的第2、3列数据互换了位置,这时候需要先把二维表统一转化为一维表,再进行各张表行、列的规范化。   首先需要去掉表结构区域,仅保留数据区域。2007年2月报表需要去掉第一列和前两行,2019年6月报表需要去掉第一列和第一行,这时候步骤二中的表头行数就派上了用场(不过在熟练以后其实这一步可省略,不影响结果)。
  二维表转一维表所用的方法叫作“逆透视”,也就是把多行、多列的数据转化为一列,道理很简单,把横向放置的数据转置,竖向排列在一起就可以了,excel中进行此项操作较麻烦,在PQ中可以很方便地进行逆透视操作。
  PQ中可以对多个数据表进行批量操作,批量逆透视之后的结果是:
  这时候就可以对不同时期的报表进行拼接(追加)了。
  5第四步:展开(拼接)报表
  这一步很简单,把规范化之后的二维表拼接在一起就可以了。
  但是对于表中的每个数据我们还不知道是什么意思,所以下一步需要进行甲栏(行号)和宾栏(列号)的转换(规范化)。
  6第五步:规范甲栏(行号)
  规范甲栏和宾栏首先需要有规范依据,以甲栏为例,需要整理出各个甲栏版本间的对应关系,经整理发现甲栏版本共有6次调整,共有7个版本,每一次调整都有一定的原因:
  需要注意的是,整理表结构需要以最新一版为准,比如密云县、延庆县已撤县设区,所以历史汇总数据中统一称密云区、延庆区,同理不再保留老东城、老西城、崇文、宣武区数据,因为人们已经不再关注这些数据了,如果需要的话可以另行添加。
  对甲栏规范表进行二维表转一维表操作,可得到如下报表:
  以此为依据可以对第四步展开的报表中的行号进行规范化整理,比如甲栏版本1-5的第3行是北京市数据,而版本6和7的第2行是北京市数据,版本2的第28行是东城区数据,版本7的第3行是东城区数据,版本1的第4行是“首都功能核心区”数据,最新版中已不再保留,所以在转化结果就顺便把它去掉了。
  甲栏规范化之后,甲栏版本列也就没用了,可以删除。规范化过程用到的方法叫作“合并查询”,类似于excel工作表函数vlookup,但好处是可以设置多个查询依据(多列),其实就是关系型数据库中所说的主键,只有同时指定“甲栏版本”和“行号”才能确定唯一的“市区”,可以理解为一个二元函数,f(x1,x2)由x1、x2共同决定的,两个条件缺一不可。
  7第六步:规范宾栏(列号)
  同理可对宾栏进行规范化转换,转换后的结果是:
  需要注意的是,宾栏中包含着4个属性,比如2019年6月报表的第2列数据,它表示:2019年当年(属性3)的2月当月(属性2)的社会消费品零售额(属性1)的绝对值(属性4)数据,而第4列表示:2019年当年(属性3)的2月累计(属性2)的社会消费品零售额(属性1)的绝对值(屙陛4)数据。
  对于数据的某些属性,我们在特定情况下可以省略说明,比如这个例子中的所有数据都是关于“社会消费品零售额”这个指标的,用户都知道,所以这个属性可以省略,可以把文件名命名为“社会消费品零售额历史数据”就可以了,用户就知道这个文件里面的所有数据都是关于这个指标的,这就是所谓数据的“上下文context”。
  但是你不能把文件命名为“海淀区社零额”,因为这里面有非海淀区的数据,但是可以命名为“北京市各区数据”“北京市各区历史数据”等,从这里也可以看出,数据表的文件名就是其中所有数据的一个或几个共同的属性名。
  在甲栏和宾栏的规范化操作中,包含着模式分解和数据清洗的过程,这都是数据整理和数据库搭建必不可少的环节。
  8第七步:单位转换
  在对甲栏、宾栏规范化转换以后其实数据汇总表已经基本做好了,但还有一个重要的问题需要解决:整理各期数据表发现有的时期数据单位是万元,有的时期是亿元,必须统一起来。
  规则很简单,对于“增速”数据不用处理,“绝对值”数据中最近5年的年末数据因为比较大,当期报表中使用了亿元单位,不用处理,其他时期的绝对值都是万元单位,统一乘以0.0001转换为亿元单位。转换之后的结果是:
  9数据分析
  一维表是数据分析的基础,当得到历史数据的一维表之后,就可以进行各类透视,然后可进行相应数据分析,透视操作用PQ或数据透视表都可以,比如对“度量”透视得到如下结果:继续透视“数期”得到:透视“市区”得到:
  可以看出,我们平时看到的大部分数据表都是一种数据透视表,透视表是对抽象事物和数据的特征的高度概括和呈现,通过序列数据的对比,使人们很容易抓住同類事物的本质和特征,例如,通过时间序列数据对比可总结出事物的变化规律,通过空间序列数据对比可概括出事物分布规律,通过时空数据对比可抓住事物的薄弱点、突破口、差距所在,更好地促进整体发展。
  在数据分析报告中,透视表比单纯的文字描述效果要好得多,很多所谓的数据分析报告就是对透视表的文字描述,比如某某指标实现了多少、增长了多少、占比是多少之类,几大段乱七八糟的文字可能还不如一张表讲得清楚,因此说一表胜千言,而进一步讲,数据图又比数据表的表现能力更好,因此还有人说文不如表,表不如图,确实如此。在数据透视表的基础上,可以在excel中制作数据图,而用微软PBI的组件powerview、百度ECharts等工具可实现更多更丰富的数据图表展现形式。
  【通联编辑:李雅琪】
其他文献
摘要:互联网技术和数字化技术在各行各业中的应用较为广泛,在现代图书馆管理工作中运用数字化技术有助于提高图书馆管理效率,可以为读者提供高质量的阅读各类服务,包括图书推荐服务等等。数据挖掘技术是一种高效的出具整合和处理技术,可以实现对各类数据的分类处理,从海量信息中筛选出有价值的信息,从而为图书馆管理平台的建设服务。图书馆的服务质量与图书阅读推荐息息相关,向读者提供个性化的推荐服务是图书馆的工作之一,
摘要:在整个建筑领域中,总图的设计是整个场地设计中的重要组成部分,在对总图设计时,要注重兼顾竖向设计图的作用,其与总平面是相互依赖、不可分割的关系,竖向设计的好坏将会直接影响到后面的一系列工作,甚至是整体的经济效益,所以其作用不可忽视。本文主要从煤矿总图进行竖向设计的意义、总图在竖向设计时需要遵循的原则、煤矿总图设计的几项基本内容、煤矿总图竖向设计的要点等几个方面展开研究,并通过此些内容来探讨煤矿
摘要:针对复杂网络的特殊性质导致社区挖掘质量较低的问题,提出一种相似度度量方法代替传统的欧氏距离,从而将密度聚类CFSFDP(clustering bvfast search andfind of density peaks)算法应用到复杂网络聚类中去。首先,利用Pade逼近方法计算复杂网络的拉普拉斯算子矩阵指数;接着,归一化核心矩阵得到相似度矩阵,并求倒数得出复杂网络各节点间距离;最后,借鉴CF
摘要:随着医院规模的日益扩大,手工医嘱无论是工作效率,还是便捷程度,在临床工作中已愈发无法满足工作需要。为避免手工医嘱存在的诸多弊端,医嘱电子化系统的建设与推进成为必然的选择。医院在系统建设与测试完毕后,先期于泌尿外科、推拿科试点使用。随后在全院各科室进行推进与上线,实现了全院的医嘱电子化,同时实现了临床的医嘱相关信息管理与信息系统相融合。  关键词:手工医嘱;医嘱电子化;试点;医嘱;信息系统  
摘要:该文分析了OFDM系统的组成,构建了OFDM系统SIMULINK仿真流程。建立了正交频分复用系统框图,并通过SIMULINK进行建模仿真,对不同信噪比下系统的误码率进行仿真分析。仿真结果表明:在16QAM调制下,15dB到10dB的范围内误比特率起伏大,在高于15dB的信噪比条件下,信号传榆的可靠性更高。  关键词:正交频分复用;仿真;SIMULINK;-~码率;信噪比  中图分类号:TN9
摘要:面向精益制造理念的生产执行系统mes为生产型企业集约经营创建管理平台,企业的生产经营流程得到极优化的设计,该文以参与实施的项目为载体,分析说明了在生产执行管理系统中,库存管理的设计理念与目标,并依据目标,设计了物料和产品库存管理的自动化和精细化流程,实现了全流程数据追溯。特别是使用了灵活的入库、出库匹配策略,响应了可能发生的各类库存物料和产品需求变化。  关键词:精益制造;生产执行系统;系统
摘要:该文概述了多点相关监视(MDs)的原理,其作用类似场面监视雷达,基于多点相关监视(MDS)系统原有的应用再进行二次应用开发,实现仪表着陆系统Ⅲc使用标准和自动交通安全管理,从而提高机场空管安全运行水平。  关键词:监视通信;预警;仪表着陆系统(ILS);Ⅲc使用标准  中图分类号:TP3 文献标识码:A  文章编号:1009-3044(2019)33-0266-02  1MDS技术概述  多
摘要:目前,物流企业正在利用大数据技术做新一轮的突破。大数据技术有着同时处理数量信息庞大,且同时并行处理相关信息的完善技术。两者的结合不仅满足市场对于物流服务质量的迫切需求,也促进了相关技术的高速发展。本文主要阐述物流行业在全国范围内的发展状况、信息时代物流企业发展主要制约因素、改善物流企业管理的有效途径。  关键词:大数据;物流企业;管理模式  中图分类号:TP393 文献标识码:A  文章编号
摘要:针对基于聚类的协同过滤推荐算法在进行聚类代价函数优化时容易陷入局部最优的问题,将具有良好全局最优搜索能力的萤火虫优化算法与聚类算法相互结合,提出一种基于萤火虫聚类的协同过滤推荐算法,实验结果表明,所提出的算法优于基于聚类的协同过滤推荐算法,其推荐准确率更高,完成实时推荐所花费的时间更少。  关键词:协同过滤;推荐系统;聚类;萤火虫算法  中图分类号:TP391 文献标识码:A  文章编号:1
摘要:为了实现洗衣机的控制功能,应用FPGA技术,以Verilog语言为基础,包含控制器,计时器,状态显示,控制对象,报警电路等模块,实现电路的设计,经验证,功能良好。  关键词:Verilog;FPGA;洗衣机电路系统  中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2019)09-0225-02  洗衣机电路系统是通过对洗衣机运行时间,循环次数的设定,可根据人们的需要,