你是不是也经历过?老板甩过来两个Excel文件,一个客户名单,一个订单记录,让你把它们对上。或者,HR那边扔来一份员工信息表,财务又来了一份工资表,两个表都有员工工号,但信息七零八落,需要你把它们整合成一个完整的大表。
这时候,你的第一反应是什么?
我猜,大概率是左手一个Ctrl+C,右手一个Ctrl+V。
打开两个表,像玩连连看一样,瞪大眼睛,在一个表里找到张三,复制他的电话号码,然后切换到另一个表,找到张三,粘贴过去。李四,王五,赵六……几十个还行,要是几百上千个呢?那种感觉,就像你在用一根针去绣一幅清明上河图,理论上可行,但实际上你的眼睛、你的脖子、你的精神,都在发出无声的尖叫。
这根本不是在工作,这是在修行。是对手眼协调能力和耐心的极限考验。
而且,手动复制粘贴是万恶之源。为什么?因为人会犯错。你手一抖,张三的电话就可能贴到李四那儿去了。你眼一花,可能就漏掉了两个人。等到老板拿着你“完美”的报表去做决策,结果发现数据一塌糊涂,那口黑锅,你背定了。
所以,请立刻、马上、现在就把复制粘贴这种石器时代的方法从你的脑子里扔出去。我们来聊点现代人该干的事儿。
VLOOKUP:那个你又爱又恨的老朋友
提到表格合并,绕不开的大神就是VLOOKUP。这玩意儿简直是Excel函数界的流量明星,一半的人靠它吃饭,另一半的人被它折磨得死去活来。
它的逻辑其实很简单,翻译成大白话就是:“喂,你拿着这个东西(查找值),去那张大表(数据表范围)的第一列里找,找到了之后,告诉我它右边第几列的那个单元格里是啥。”
听起来是不是挺像那么回事?
举个例子。我们有【表A:员工信息】,里面有“工号”、“姓名”。还有【表B:工资单】,里面有“工号”、“基本工资”、“绩效奖金”。现在要把工资和奖金合并到【表A】里。
关键点来了,两个表都有一个共同的、独一无二的东西——“工号”。这个就是我们进行匹配的“信物”,专业点叫唯一标识符。没有这个东西,神仙也救不了你。
你在【表A】里张三那行,想找他的基本工资,就写下这么个咒语:
=VLOOKUP(A2, 工资单!A:C, 2, FALSE)
我给你翻译翻译:
* A2:这就是我们要找的“信物”,也就是张三的工号。
* 工资单!A:C:这是告诉Excel,去“工资单”那个工作表的A到C列这个范围里去找。
* 2:如果找到了,请把那个范围里,从左往右数的第2列(也就是基本工资那列)的数据给我。
* FALSE:这个最关键,意思是精确匹配。找不到一模一样的工号就别瞎给我配对,直接告诉我“没找到”(#N/A)。你千万别用TRUE,那会让你死得很难看。
看起来很美,对吧?的确,在很多场景下,VLOOKUP就是救世主。但它有个致命的毛病,一个VLOOKUP的致命软肋:它是个“睁眼瞎”,只能从左往右看。
什么意思?就是你用来查找的那个“工号”,必须在你指定的数据范围的第一列。如果你的工资单里,工号在第二列,姓名在第一列,你想用姓名去找工号,对不起,VLOOKUP直接罢工。它做不到“回头看”。
这个限制,在很多复杂的表格结构里,简直能把人逼疯。于是,我们需要更牛的家伙登场。
INDEX + MATCH:高手进阶的屠龙之技
如果说VLOOKUP是步兵,那INDEX和MATCH这两个函数的组合,就是特种部队。它们俩联手,指哪打哪,上下左右,无所不能。
这套组合拳听起来吓人,其实你把它拆开看,特别好理解。
-
MATCH函数:它的任务很简单,就是“定位”。你给它一个东西,再给它一列或一行,它就告诉你这个东西在这一列或这一行的第几个位置。 比如
=MATCH("张三的工号", 工资单!A:A, 0),它返回的就是张三的工号在工资单A列的行号,比如说,5。 -
INDEX函数:它的任务是“取货”。你告诉它一个范围,再告诉它行号和列号,它就把那个位置的东西给你取出来。 比如
=INDEX(工资单!B:B, 5),它就会去工资单的B列,把第5行的那个单元格的数据(也就是张三的基本工资)给你拿过来。
看明白了吗?这两个家伙一合计,就实现了完美的配合: 先用MATCH找到“张三”在另一张表里的位置(行号),再用INDEX根据这个行号,去指定列把数据取回来。
所以,完整的公式长这样:
=INDEX(工资单!B:B, MATCH(A2, 工资单!A:A, 0))
这个公式组合的牛逼之处在于: 1. 无视方向:查找列和结果列谁在左谁在右,它根本不在乎。彻底解放了表格的列顺序。 2. 性能更优:在处理超大数据量的时候,据说比VLOOKUP跑得快。虽然我们可能感觉不明显,但这是专业素养。 3. 更不容易出错:VLOOKUP的第三个参数是个写死的数字(第几列),如果你在数据源表里中间插入或删除了一列,VLOOKUP的结果可能就全错了,而你还被蒙在鼓里。INDEX+MATCH是直接定位到列,你中间怎么折腾,它都不受影响。
掌握了INDEX+MATCH,你在办公室里看别人的眼神都可以不一样了。这代表你已经脱离了Excel的“新手村”。
Power Query:颠覆一切的降维打击
好了,如果你觉得上面的函数已经很酷了,那么接下来说的这个东西,可能会让你觉得之前学的都是“小儿科”。
它的名字叫 Power Query。
这玩意儿在Excel 2016及之后的版本里是内置的,就在“数据”选项卡下面。它不是一个函数,它是一个工具,一个数据处理的独立王国。
用VLOOKUP或者INDEX+MATCH,你还是在“做表”,是在单元格里敲公式。而用Power Query,你是在“建立一个数据处理流程”。
这听起来很玄乎,我给你描述一下用它合并两个表的场景,你来感受一下什么叫“降维打击”。
假设还是那两个表,【表A:员工信息】和【表B:工资单】。
- 加载数据:你不再需要写任何公式。你只需要选中【表A】的数据区域,点击“数据” -> “自表格/区域”。Excel会弹出一个叫“Power Query 编辑器”的窗口。你的表A就进去了。你给它起个名字,比如“员工信息”,然后点击“关闭并上载至...”,选择“仅创建连接”。对,你没看错,仅创建连接,我们暂时不需要把它加载回工作表。
- 重复操作:对【表B:工资单】也做同样的操作。现在,你的Power Query里就有了两个“数据源”的连接。
- 见证奇迹的时刻:还是在“数据”选项卡,点击“获取数据” -> “合并查询” -> “合并”。一个新窗口弹出来。
- 在上面的下拉框里,选择“员工信息”表。
- 在下面的下拉框里,选择“工资单”表。
- 然后,鼠标依次点击两个表里作为“信物”的那一列,也就是“工号”列。你会看到Power Query自动帮你判断匹配了多少行。
- “联接种类”那里,默认的“左外部”就够用了,意思是以左边的员工信息表为准,把匹配上的工资信息带过来。
- 点击“确定”。
- 展开数据:你会被带回Power Query编辑器,看到一个新的查询结果。最后一列是“工资单”表,每个单元格里都是一个“Table”。别慌,点击那一列标题旁边那个带两个小箭头的图标,在弹出的菜单里,取消勾选“工号”(因为我们已经有了),只勾选你想要的“基本工资”和“绩效奖金”。点击确定。
Booooom!
你看到了什么?一个崭新的、完美的、合并好的表格出现在你面前。没有一个公式,全程都是鼠标点击。
但这还不是最牛的。
最牛的是,这个流程是可以刷新的!
什么意思?下个月,HR更新了员工信息表,财务更新了工资单。你不需要重复上面任何一个步骤。你只需要在最终生成的结果表上,右键 -> 刷新。
所有的数据,都会自动按照你之前设定的流程,重新走一遍,然后给你一个最新的结果。
这才是真正的一劳永逸。
Power Query的强大远不止于此,合并数据只是它牛刀小试的开胃菜。它可以清理数据、转换格式、拆分合并列、分组聚合……基本上,所有你过去需要用复杂函数、VBA才能搞定的数据预处理工作,在它这里,都变成了点几下鼠标的事。
所以,怎么把两个Excel表合并?
- 如果你想快速解决问题,并且数据结构简单,用VLOOKUP。
- 如果你追求更稳定、更灵活的方案,并且想在同事面前秀一把,用INDEX + MATCH。
- 而如果你想彻底告别重复劳动,建立一个自动化的数据处理流程,并且为未来的数据分析之路打下坚实的基础,那么,请立刻去拥抱Power Query。
相信我,当你体验过Power Query那种“一次设定,终身受益”的快感之后,你再也不会回头去看那些在单元格里敲打公式的蛮荒时代了。那不仅仅是技巧的提升,更是工作思维的彻底解放。
【怎么把两个excel表合并】相关文章:
那一刻,世界是静止的。02-06
excel输入箭头符号怎么打出来02-06
我们来聊聊Excel里那条看似不起眼的内框线,以及如何给它注入灵魂——也就是,设置颜色。02-06
在excel里怎么合并单元格02-06
别再折磨自己了,求求了。02-06
excel的0不显示怎么办02-06
怎么把两个excel表合并02-06
怎么把excel数据导入数据库02-06
word怎么excel一列表格02-06
在制作excel表格怎么做的02-06
“Excel怎么一分为二?”02-06
excel中的饼图怎么做的02-06