怎样提取EXCEL表中多个工作表的同一列最后一个数据?

熟练Excel各种操作,会用Excel各种公式,会用Excel数据透视表……这些可以让你熟练掌握Excel,成为Excel高手,但要想成为数据处理大神,还差那么一点。

要想成为Excel数据处理大神,你不能只会公式和数据透视,甚至熟练使用VBA也不行,因为VBA的强项并不是数据处理。那还必须会什么技能呢?

PowerQuery,从字面意思上看,就是超级查询,专门为数据处理而生。

从Excel2010开始,微软开发了一个独立的PowerQuery插件,它突破了Excel的行数限制,到Excel2016,甚至把这个插件内置化,成为Excel中的一个常驻功能,可即使这样,依然大部分都没有听说过它,微软真的是太低调了,这么好用的工具,竟然都不大力宣传,让大部分人白白错过打好的学习机会。

既然微软不大力宣传,那我就帮微软宣传一下好了(虽然微软也不给发工资:)。

学好PowerQuery,不仅帮你成为数据处理大神,还能帮你快速的成为数据处理大神。

它现在安静的躺在Excel的【数据】选项卡下面,可能很多人压根没有注意过,


点击进去,你就会发现另有一番天地,

简直就是另外一个软件,有木有!

其实不用被这些吓到了,它使用起来十分简单,至少大部分常用的功能都通过点点鼠标就可以完整的。

那么它到底有什么用呢?为什么要从Excel界面来到这个奇怪的地方?

PowerQuery主要用于大数据清洗,就是将各种杂乱的数据整理成我们想要的样子,它的特点:

  • 数据无限制,Excel有1048576行的限制,这里完全没有!
  • 简单的操作,实现各种在传统Excel中很难完成的数据处理,快速成为Excel专家!
  • 一劳永逸:所有的数据处理步骤自动保存,下次点击刷新即可。

可能说到这里大家还是不知道它到底有什么用,怎么用,下面以几个实例来看看它的用法。

一,批量合并多个Excel

如何将多个工作簿的数据合并到一张表上?

可能不同的人有不同的做法?

普通青年用万能的复制粘贴
二逼青年网上百度VBA代码一键汇总
文艺青年找个崇拜自己的实习小MM帮忙

其实都不必这么麻烦,Power Query来了。

下面来看一下PQ是如何汇总多文件的数据的:

假设有一个连锁型零售商店,有北京、广州、杭州三个城市门店,总部每月需要汇总每个城市门店销售明细数据,现在需要汇总2016年1-3月的销售明细,共9个工作簿,保存在一个文件夹内,结构如下:

首先我们新建一张空白Excel工作簿,点击"数据"选项卡下"新建查询",从文件夹获取数据:

浏览找到该文件夹的路径,确认后出现这个界面,

点击"编辑",进入查询编辑器:

数据就储存在[Content]列,其他列都是每个工作簿的信息,现在要做的就是把Content的内容提取出来,点击"添加列"选项卡,添加自定义列,

自定义列中输入公式=Excel.Workbook([Content]),这里要注意严格区分大小写,不能写错了,这就是提取Excel格式数据的M函数(关于M函数后面会单独介绍)。

确认后就出现了一个自定义列:

点击自[定义列]右上角的双箭头展开数据,出现这个窗口,

直接点击确定,出现了如下这个界面:

又新增加了几列,继续点击[自定义.Data]列的右上角的双箭头,然后还是直接点确认,数据就全部出来了:

然后只留下下各门店上报的数据了,可以看到列的标题是系统添加的,其实应该用第一行作为列的标题,我们直接点击"转换"选项卡下的将第一行作为标题:

然后标题就提升上去了。

数据导入过程中9个表格的标题行是重复的,另外表格中可能有空行,所有把标题行和空行筛选出去,像在Excel中一样,点击城市的倒三角,去掉这两个勾选:

数据汇总完成,点击上载数据:

然后大功告成,数据就全部汇总到这个Excel表格中了。

看着好像步骤挺多,其实动手做起来,所有这些步骤只需一分钟而已,中间除了那个简单的M函数,一直都是点点鼠标,是不是非常简单呢。

更简单的是,上面操作的所有步骤都被记录下来,下个月销售记录更新的时候,比如把各个门店的4月份的明细数据放到相应的文件夹里面,连点鼠标都不用了,直接刷新数据,然后4月的数据就全部汇总到这个表格了。

如果你说这些其实通过VBA或者简单的复制粘贴还都可以做出来,那么如果有100家门店,每家门店全年12个月的数据呢,复制粘贴显然不现实,如果数据量大用VBA估计也会把电脑卡死。而在PQ中呢,就是打开文件点击刷新,这个文件夹下无论多少文件,无论数据量有多大,汇总也是秒秒钟的事情。


二、合并一个Excel工作簿中的多个sheet

随便新建一个Excel工作簿,点击数据>获取数据>自文件>从工作簿

步骤二:选择一个表,加载入PowerQuery

选择需要合并的工作簿,然后出现如下界面,

随便选择一个表,点击编辑,。

进入powerquery编辑器后,找到右边步骤面板,把【源】之后的步骤全部删除

点击Data列右侧的双箭头,如下图,点击确定。

然后提升标题,删除需要的列。

然后数据就可以在Excel工作表中看到了。

仅仅点击几下鼠标,没有输入任何公式和代码,合并多个sheet的功能就完成了。


利用PowerQuery,二维表转为一维表十分方便,以Excel中常见的几种结构的表格为例,看看都是如何操作的。

简单的二维表,如本文的第一张图表,直接使用逆透视功能,就可以快速转为一维表,

可以选择需要透视的列进行“逆透视”,也可以选择不需要透视的列,然后点击“逆透视其他列”来完成。

提示:这些操作,生成的最终一维表的列名,需要自己手动更改一下,下同。

行标题带有层级结构的二维表,如下,

这种结构很清晰,但做数据分析最让人头疼的就是合并单元格,不过在PowerQuery中处理也并不困难,只是多了一些步骤。

将上表导入到PowerQuery编辑器后,先把年度列向下填充,将年度数据补齐,然后再进行逆透视,

列标题带有层级结构的二维表,如下,

这种表格可以先转置,转置以后,就是第二种情形,然后再进行逆透视就可以了,

行标题和列标题均带有层次结构,如下图,

看起来更复杂是不是,其实同样是上述几个步骤灵活组合,

a. 将年度列向下填充,补齐数据

b. 将年度列和季度列合并,生成年度季度列,这种结构就变成第三种情形,

c. 转置表、把第一列向下填充,并提升标题,就变成了很简单的结构,也就是第二种情形,

d. 选中前两列,逆透视其他列,就变成了一维表

e. 为了和源数据维度一致,将年度季度列进行分列

至此就得到了最终的一维表,看起来步骤很多,其实熟练掌握了也就分分钟的事。


四:零代码轻松获取地址的经纬度

从一个地址中找出该地址所处的省份、城市,如果是结构化的地址,比如“北京市海淀区丹棱街5号”,可以通过分列或者文本函数提取出相关信息,但是如果一个特定的地址不包含城市信息,比如“中央电视台总部大楼”,这种情况下你如何自动找出所在的位置信息呢?

更进一步的,我们还想返回这些地址的经纬度信息,这种需求也很普遍,但通过简单的文本函数已无法实现。

不过还好有更强大更方便的实现方式:调用地图网站的API.

关于什么是API就不再细说,可以自行搜索相关信息,下面直接介绍PowerQuery如何调用API,并返回一个位置信息的相关维度。

各大地图网站都有可供调用的API,这里我们使用高德地图的API,首先需要申请一个key,关于如何申请,请自行百度,有了这个key以后,就可以在PQ中开始操作了。

以返回"中央电视台总部大楼"所在的城市、辖区、经纬度等信息为例,来分步操作。

1、获取数据>web,输入网址:

2、点击编辑进入pq编辑器中,

3、逐步展开Table中的数据并删除不必要的列,就可以得到我们想要的信息,

(调出来的信息很丰富,也包括国家、区号、结构化地址等信息,可以根据自己的需要来选择保留哪些列)

上面的这些步骤只是获取地址信息的sample,我们不能每查询一个地址都要操作一遍这些步骤,下面才是重点。

还记得之前介绍的自定义函数吗?(),这里就是将以上的步骤封装成一个函数,随时调用

右键该表>创建函数,

输入一个函数名,自己随便写,不冲突就可以,我这里用location作为函数名,这样就建好了一个自定义函数location。

然后打开这个自定义函数的代码,在括号中输入参数,并将地址更改为参数,比如参数设为x,将上面步骤中的“中央电视台总部大楼”替换为参数x。然后这个自定义函数就建好了。

如果想找到上海东方明珠的位置信息,直接输入参数框并调用即可,

对于批量的地址,还可以直接通过添加列来批量调用自定义函数location,

利用PowerQuery调用API是不是很强大呢,全程没有输入一行代码,只是通过界面操作,点点鼠标,就批量获得你想要的各类地址信息。


通过以上几个示例,看到PowerQuery的强大了吧,关键是它极易上手,无论变成基础,也不用对Excel非常熟练,甚至Excel小白,都能轻松完成在Excel几乎不可能完成的数据处理,并且速度还超级快,帮你快速超过Excel老司机,成为Excel数据处理大神。

关于Excel的PowerQuery,以及强大的数据建模PowerPivot,这些模块现在都已经集成在了更强大的Power BI中,也可以直接在PowerBI中学习,关键看平时进行数据处理的场景主要在Excel中还是在数据可视化方面。

学习Powerquery、PowerPivot以及数据可视化的各项技能,可以来知乎专栏学习:

}

excel 在一个表格中怎么查找相同的名字并排列在一起

1、打开Excel2010表格文档,在如表格中我们想要栏当中相同的人名信息一起

2、选中姓名这一列的数据,选中的标志就是表格的粗黑线,在“开始”选项卡上选择:“编辑”-“排序和筛选”-“自定义排序”。

3、弹出“排序”窗口,在列的主要关键字中选择“姓名”,“排序依据”和“次序”执行默认选项即可。

4、点击“确定”选项之后,再次回到Excel界面,就会发现姓名这一列中相同的信息已经排列到一块啦。

5、按照以上同样的方法再次进入“排序”窗口,在上方点击“选项”,就可以看到Excel排序的规则。

6、默认的情况下,在你选择相应的数据之后,就会进行排序,在方向上是“按列排序”,在方法上是“字母排序”。

EXCEL里面怎样把同一表格里面名称相同的排在一起?
在同一表格中怎么查找相同的名字

两个Excel表格,怎么能从一个表里把相同名字的人信息综合在一起?

1、在表格2中输入和。

2着切换到1中,在表格1中也输入姓名列是一定要与表格2的顺序不相同,然后在B1单元格中输入提取相同姓名的公式:=VLOOKUP(A1,Sheet2!$A$1:$B$5,2,FALSE)。

3、然后按回车键就可以看到在表格1中已经将“姓名1”对应在表格2中的数据提取显示出来了。

4、最后点击表格1中的B1单元格的公式向下填充,就可以批量将所有姓名对应的数据从表格2中提取到表格1中了。

excel中如何引用其他表格中相同名字下的数据?

1、这里有三张表(举例),“性别”、“”和“职业”。

2、利用vlookup函数,将第二张表(民族)中的内容应用到第一张表中,在对应位置输入“=VLOOKUP(A2,民族!A2:B17,2,FALSE)”,并应用到同一列表格。

3、VLOOKUP函数,表示搜索一个或多个数据列。表示将单元格 A2的值作为搜索内容。表示在工作表《民族》单元格A2:B17 的范围内搜索是否有与单元格 A2的值相匹配的内容。如果找到了相匹配的值,则返回工作表《性别》单元格A2:B17第2列的对应内容。"FALSE",表示查找时要求完全匹配,而不是模糊匹配。

}

Excel工作表可以理解为一个由行、列组成的二维数组。Excel公式支持数组和数组公式。数组可以是常量数组,也可以是单元格区域的引用。使用数组和数组公式时,可以逐数组元素或逐单元格处理后返回结果。

下面直接从一个实例入手,再去讨论相关知识点。

1 实例(从文本里提取数字)

相关数据及需要达到的效果:

朋友过生日送礼金300元

关键是要获得第一个数字出现的位置。

可以返回3,表示字符1在字符串“吃饭15元”中的位置。

如果要查找0,1,2,3,4,5,6,7,8,9十个字符呢?这时,数组及数组公式就可以派上用场了。使用数组{0,1,2,3,4,5,6,7,8,9}作为参数,可以逐步处理每一个数字在字符串中出现的位置,返回的也是一个数组(10个值)。由此,我们选择一个有10个单元格的连续区域D2:M2,输入=FIND({0,1,2,3,4,5,6,7,8,9},B2,1),同时按下CTRL+SHIFT+ENTER,然后复制数组公式,得到如下效果:

错误值#VALUE!表示某数字在字符串中不存在,所以也就不能返回位置值。

为了避免出现错误值,可以在字符串后串一个包含10个数字字符的数字字符串:

下一步要获取数字长度。

函数LEN()可以返回字符数,函数LENB()可以返回字符串的字节数,一个数字一个字节,一个汉字两个字节,组合使用可以获取数字的长度:=LEN(B2)-(LENB(B2)-LEN(B2))

使用mid函数即可以截取数字,在公式前使用两个负号,可将文本转换为数字:

以下公式可以做一个改良:

得到的下面公式具有同样效果,更通用和简洁:

2 数组及数组公式相关知识

数组就是一组数据,数组公式可以进行多重运算(对每一个数组元素或区域的每一个单元格都应用操作),减少了多次写于单元格的过程,可以实现常用公式较烦锁的操作,一步到位。

当我们对一个区域应用数组公式时,如D2:D6,使用此区域,输入{=B2:B6*C2:C6},按CTRL+SHIFT+ENTER,会在D2:D6的每个单元格输入{=B2:B6*C2:C6},都是一样,此时数组公式是一个整体,不能更改数组的一部分,也就是不能单独删除其中的一个单元格的数组公式,我们要删除数组公式要全部选中,当我们有时修改一个单元格的数组公式,不能退出时,大家记得按ESC键。

2.3 一个单元格显示数组的情况

由于一个单元格内只能储存一个数值,所以当结果是一组数据时,单元格只返回第一个值。

可分为横向数组、纵向数组、区域数组(多行多列),也可以按维来分,横向数组和纵向数组都属于一维数组,区域数组属于二维数,像这种{1,2,3,1}就是常量数组

2.5 怎样查看数组的结果(也就是选择公式的一部分求结果),当然是独孤九剑F9或使用“公式求值”来按顺序求值复合公式的每一部分。

2.6 数组成员中间有时有分号,有时用逗号是怎么回事?横向数组用逗号分开,纵向数组用分号分开。

2.7 常量数据在函数里的应用

a) 数组公式最大的特征就是所引用的参数是数组参数,包括区域数组和常量数组。

b) 区域数组,是一个矩形的单元格区域,如 $A$1:$D$5

d) 数组公式中的参数必须为"矩形",如{1,2,3;1,2}就无法引用了

同时按下CTRL+SHIFT+ENTER,数组公式的外面会自动加上大括号{}予以区分。

3.2 求表二产品AA的总价

先用判断区域C50:C54是否有等于AA的,结果返回

4 Row()函数在数组公式中的运用

a) 谈到数组公式,我们不得不说一下ROW()这个函数,它在数组公式中起到了很大的作用,许多公式中都需要用到它来作为参数。

b) 我们先来做一个题目:求正整数列1,2,3,4……100这100个数字之和(首先假设你不知道等差数列求和公式,呵呵),=SUM(ROW($A$1:$A$100))。

c) 我们利用Row(A1:A100)来产生1到100自然数,然后用Sum求和。我们都知道,ROW()是用于返回单元格行号的函数,通常它只能引用一个参数。但是在数组公式中,该函数就能引用多个单元格作为参数,对于整个引用区域进行分别运算,从而就能返回一组数据。

知道了这一点以后,我们就能在数组公式中利用这一个功能来得到一组连续的正整数。

当然COLUMN()的作用和ROW()是相同的,上面的计算也能用以下公式:

但是相对于ROW()的引用方式来说,A1:A100要比A1:CV1更直观地体现出所引用的是100行还是100列,所以ROW()一般来说使用得更普遍些,当然也不排除有时候需要用到COLUMN(),这就要看具体情况了。

}

我要回帖

更多关于 不同电子表格提取同一列数据 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信