Table of contents
今天的博文介绍了合并2个Google表的所有方法。 你将使用VLOOKUP、INDEX/MATCH、QUERY和合并表插件,根据共同列的匹配,从另一个表中的记录更新一个表中的单元格。
使用VLOOKUP功能合并谷歌表
当你需要匹配和合并两个谷歌表时,你可能首先求助于VLOOKUP功能。
语法& 用途
这个函数搜索你指定的某一列的某一键值,并从同一行中拉出一条相关记录到另一个表或工作表中。
虽然谷歌表的VLOOKUP通常被认为是困难的功能之一,但它实际上是相当直接的,甚至在你了解它之后也很容易。
让我们快速看一下它的组成部分。
=VLOOKUP(search_key, range, index, [is_sorted])- 搜索_键 是你要找的键值,它可以是任何文本字符串、数字或单元格引用。
- 范围 是一组单元格(或一个表格),你将在其中寻找 搜索_键 以及你将从哪里提取相关记录。
注意:谷歌表格中的VLOOKUP总是扫描 范围 为 搜索_键 .
- 指数 是该列中的编号 范围 你想从哪里提取数据。
例如,如果你要搜索的范围是A2:E20,你需要从E列获取数据,就输入5。 但如果你的范围是D2:E20,你需要输入2来获取E列的记录。
- [is_sorted] 是唯一可以省略的参数。 它用于说明带有键值的列是否被排序(TRUE)或不排序(FALSE)。 如果是TRUE,函数将使用最接近的匹配,如果是FALSE,则使用完整的匹配。 当省略时,默认使用TRUE。
提示:我们有一份关于谷歌表格中VLOOKUP的详细指南。 请查看它以了解更多关于该函数、其特殊性& 限制,并获得更多的公式实例。
考虑到这些论点,让我们使用VLOOKUP来合并两个Google表单。
假设我在Sheet2中有一个包含浆果和它们的ID的小表。 但库存的可用性是未知的。
让我们把这个表称为主表,因为我的目标是要把它填进去。
在Sheet1中还有一个表,所有的数据都已到位,包括库存的可用性。
我把它称为查找表,因为我将查看它以获得数据。
我将使用谷歌表的VLOOKUP功能来合并这两张表。 该功能将匹配两张表中的浆果,并将相应的 "股票 "信息从查询中拉入主表。
=VLOOKUP(B2,Sheet1!$B$2:$C$10,2,FALSE)
下面是这个公式如何准确地合并两个谷歌表。
- 它在Sheet1(查找表)的B列中查找B2(主表)的值。
注意:记住,VLOOKUP扫描的是指定范围的第1列------。 表1!$B$2:$C$10 .
注意:我对这个范围使用绝对引用,因为我把公式复制到下一列,因此我需要这个范围在每一行都保持不变,这样结果就不会中断。
- 最后的FALSE表示B列中的数据(在查找表中)没有被排序,所以只考虑完全匹配。
- 一旦出现匹配,Google Sheets VLOOKUP就会从该范围的第二列(C列)提取相关记录。
隐藏谷歌表格中VLOOKUP返回的错误 - IFERROR
但那些#N/A的错误怎么办?
幸运的是,有一种方法可以使这些单元格保持空洞。
只需将你的谷歌表VLOOKUP包裹在IFERROR中。
=IFERROR(VLOOKUP(B2,Sheet1! $B$2:$C$10,2,FALSE),""
提示:使用本指南中的解决方案捕获并修复您的Google Sheets VLOOKUP可能返回的其他错误。
匹配& 一次性更新整列的记录 - ArrayFormula
还有一件事我想提一下,就是如何一次性匹配和合并整个列的谷歌表数据。
这里没有什么花哨的,只是多了一个函数--ArrayFormula。
只需将你在谷歌表VLOOKUP中的单格关键记录替换成整列,并将这整个公式放在ArrayFormula内。
=ArrayFormula(IFERROR(VLOOKUP(B2:B10,Sheet1!$B$2:$C$10,2,FALSE),")
这样一来,你就不需要将公式复制到下一列,ArrayFormula会立即向每个单元格返回正确的结果。
虽然谷歌表格中的VLOOKUP对于这种简单的任务来说是完美的,但它也有一些限制。 这里有一个缺点:它不能看它的左边。 无论你指示什么范围,它总是扫描其第一列。
因此,如果你需要合并2个谷歌表,并根据浆果(第二列)提取ID(第一列数据),VLOOKUP不会有帮助。 你只是无法建立一个正确的公式。
在这样的情况下,谷歌表的INDEX MATCH进入了游戏。
匹配& 使用INDEX MATCH duo合并Google表单
INDEX MATCH,或者说 INDEX & MATCH,实际上是两个不同的 Google Sheets 函数。 但当它们一起使用时,就像一个次一级的 VLOOKUP。
是的,他们也合并谷歌表:根据共同的关键记录,用另一个表中的记录更新一个表中的单元格。
但他们做得更好,因为他们忽略了VLOOKUP的所有那些限制。
我今天不会介绍所有的基础知识,因为我在这篇博文中已经介绍过了。 但我将给你几个INDEX MATCH公式的例子,这样你就可以看到它们是如何直接在Google电子表格中工作的。 我将使用上面的同样的样本表格。
谷歌表格中的INDEX MATCH操作
首先,让我们合并这些谷歌表,并更新所有匹配浆果的库存可用性。
=INDEX(Sheet1! $C$1:$C$10,MATCH(B2,Sheet1! $B$1:$B$10,0))
INDEX & MATCH这样一起使用时如何工作?
- MATCH查看B2,并在Sheet1的B列中搜索完全相同的记录。 一旦找到,它将返回包含该值的行的编号--在我的例子中是10。
- INDEX也会进入Sheet1的第10行,只是它从另一列--C中取值。
现在,让我们试着测试一下INDEX MATCH对谷歌表VLOOKUP不能做的事情--合并表和用所需的ID更新最左边的列。
=INDEX(Sheet1! $A$2:$A$10,MATCH(B2,Sheet1! $B$2:$B$10,0))
简单-容易 :)
在谷歌表格中处理由INDEX MATCH返回的错误
让我们更进一步,摆脱那些没有匹配的单元格中的错误。 IFERROR将再次提供帮助。 只要把你的谷歌表INDEX MATCH作为其第一个参数。
例1.
=IFERROR(INDEX(Sheet1!$C$1:$C$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),""
例2.
=IFERROR(INDEX(Sheet1!$A$2:$A$10,MATCH(B2,Sheet1!$B$2:$B$10,0)),""
现在,你如何使用INDEX MATCH合并这些谷歌表,并一次性更新整个列中的所有单元格?
有一个小问题:ArrayFormula不能和这两个一起使用。
你需要将INDEX MATCH公式复制到该列,或者使用谷歌表格的QUERY功能作为替代。
合并谷歌表单& 使用QUERY更新单元格
Google Sheets QUERY是电子表格中最强大的功能。 考虑到这一点,它提供一种合并表格的方法也就不足为奇了--匹配&;合并来自不同表格的值。
=QUERY(data, query, [headers])提示:如果你以前从未使用过谷歌表的QUERY,本教程将让你了解其奇特的语言。
要更新的QUERY公式应该是什么样子的? 股票 列的实际数据?
=QUERY(Sheet1!$A$2:$C$10, "select C where&Sheet4!$B2:$B$10&" ")
- 谷歌表的QUERY查看我的查找表(Sheet1,有我需要拉到主表的记录)。
- 并返回所有来自C列的单元格,其中B列与我的主表中的浆果相匹配。
让我失去那些没有匹配的单元格的错误。
=IFERROR(QUERY(Sheet1!$A$2:$C$10, "select C where&Sheet4!$B2:$B$10&"),""
嗯,那就更好了 :)
从不同的谷歌电子表格中合并表格 - IMPORTRANGE功能
还有一个功能我想提一下,它很重要,因为它可以让你合并位于不同谷歌电子表格(文件)中的工作表。
该函数被称为IMPORTRANGE。
=IMPORTRANGE("spreadsheet_url", "range_string")- 前者是那个电子表格的链接,你从那里提取数据。
- 后者指的是工作表&;你想从该电子表格中获取的范围。
注意:我强烈建议通过谷歌文档来了解这个功能,这样你就不会错过其工作的任何重要细微差别。
想象一下,你的查询表(含参考数据)在电子表格2(又称查询表)中。 你的主表在电子表格1(主电子表格)中。
注意:为了让IMPORTRANGE发挥作用,你必须同时连接这两个文件。 虽然Google Sheet建议在你在单元格中输入公式后有一个按钮,然后点击 进入 这个分步骤的指南将帮助你。
下面是使用IMPORTRANGE将不同文件中的Google表单与你今天早些时候学到的每个函数合并的例子。
例1.IMPORTRANGE+VLOOKUP
在VLOOKUP中使用IMPORTRAGE作为范围,合并2个独立的谷歌电子表格。
=ArrayFormula(IFERROR(VLOOKUP(B2:B10,IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$B$2:$C$10"),2,FALSE)"))
例2.IMPORTRANGE + INDEX MATCH
至于INDEX MATCH & IMPORTRANGE,公式变得更加庞大,因为你需要两次引用另一个电子表格:作为INDEX的范围和作为MATCH的范围。
=IFERROR(INDEX(IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$A$1:$A$10"),MATCH(B2,IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$B$2:$B$10"),0)
例3.IMPORTRANGE + QUERY
这个串联的公式是我个人的最爱。 当它们一起使用时,几乎可以处理电子表格中的任何事情。 从独立的电子表格合并谷歌表也不例外。
=IFERROR(QUERY(IMPORTRANGE("//docs.google.com/spreadsheets/d/1Sq...j7o/edit", "Sheet1!$A$2:$C$10"), "select Col3 where&QUERY!$B2:$B$10&"),""
呜!
这就是所有的函数& 公式。
你可以自由选择任何函数&;通过上面的例子建立你自己的公式...。
或...
...试试一个特殊的工具,它可以为你合并谷歌表!;)
无公式的方式来匹配& 合并数据 - 合并表为Google表的插件
如果你没有时间建立甚至学习公式,或者你只是在寻找基于共同记录的最简单的数据连接方式,合并表将是完美的。
你所需要做的就是在5个用户友好的步骤中勾选复选框。
- 选择你的主表
- 选择你的查询表
- 用复选框标记关键列(那些包含要匹配的记录)。
- 选择要更新的列。
甚至还有可能将所有选定的选项保存到一个场景中,并在需要时重新使用。
观看这个3分钟的演示视频,看看它是如何工作的。
我鼓励你从谷歌表商店安装你的合并表,并按照这些说明尝试用另一个表的信息来更新你自己的表。
带公式的电子表格示例
合并谷歌表&;更新数据--公式示例(复制一份文件)。