Table of contents
你知道吗,当你合并2张Google表单时,你不仅可以更新某一列的记录,还可以拉动整个相关的列,甚至是不匹配的行? 今天我将向你展示如何使用VLOOKUP、INDEX/MATCH、QUERY函数和合并表单插件来实现。
上一次我谈到合并2个谷歌表时,我分享了匹配&的方法;更新数据。 这一次,我们仍然要更新单元格,但也要拉出其他相关的列和不匹配的行。
这是我的查找表。 我今天要从里面提取所有必要的数据。
这次它变得更大了:它有两列额外的供应商名称和他们的评级。 我将在另一个表中用这些信息更新股票列,并将拉出供应商。 好吧,也许还有评级 :)
像往常一样,我将使用一些功能和一个特殊的插件来完成这项工作。
合并谷歌表& 使用VLOOKUP添加相关列
还记得谷歌表的VLOOKUP吗? 我在之前的文章中用它来匹配数据并更新一些单元格。
如果这个功能仍然让你感到害怕,现在是时候面对它并彻底学习它了,因为我今天也要使用它 :)
提示:如果你正在寻找一个快速解决方案,以节省你的时间,马上去满足合并表。
让我们做一个快速的公式语法回顾。
=VLOOKUP(search_key, range, index, [is_sorted])- 搜索_键 是你要找的。
- 范围 是你要找的地方。
- 指数 是要返回数值的列的编号。
- [is_sorted] 是完全可选的,表示关键列是否被排序。
在我们的博客上有一个关于谷歌表VLOOKUP的完整教程,请随时查看。
当我合并两个谷歌表并简单地更新股票栏的数据时,我使用了这个VLOOKUP公式。
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Sheet1!$B$2:$D$10,2,FALSE),")
IFERROR确保没有匹配的单元格中没有错误,ARRAYFORMULA一次处理整个列。
那么,我需要做什么改变来从查询表中拉出供应商作为一个新列呢?
好吧,因为它是 指数 它告诉Google Sheets VLOOKUP应该从哪一列获取数据,可以说它是需要调整的一列。
最简单的方法是直接将公式复制到邻近的列中,并增加其 指数 一个(替换为 2 与 3 ):
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Sheet1!$B$2:$D$10,3,FALSE),")
然而,你需要用不同的索引插入相同的公式,次数不限,你想得到多少个额外的列。
幸运的是,有一个更好的选择,那就是创建数组。 数组可以让你把所有你想拉的列合并到一个索引中。
当你在谷歌表格中创建一个数组时,你会在括号中列出数值或单元格/区域参考,例如 ={1, 2, 3} 或 ={1; 2; 3}
这些记录在一张纸上的排列取决于分隔符。
- 如果你使用分号,数字将在一列中占据不同的行。
后者正是你在谷歌表VLOOKUP索引参数中需要做的。
由于我合并了谷歌表,更新了第2列并拉出了第3列,所以我需要用这些列创建一个数组。 {2, 3} :
=ArrayFormula(IFERROR(VLOOKUP($B$2:$B$10,Sheet1!$B$2:$D$10,{2,3},FALSE),"" ))
这样,一个谷歌表的VLOOKUP公式就可以匹配名字,更新股票信息,并将相关的供应商添加到相邻的空列中。
匹配&;合并工作表并使用INDEX MATCH添加列
接下来是INDEX MATCH。 这两个函数一起与VLOOKUP竞争,因为它们在合并Google表单时绕过了它的限制。
提示:在本教程中了解谷歌表的INDEX MATCH。
让我先提醒你一下这个公式,它只是根据匹配情况合并了一列。
=IFERROR(INDEX(Sheet1!$C$1:$C$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),""
在这个公式中。 Sheet1!$C$1:$C$10 是一个带有你需要的值的列,只要 Sheet1!$B$1:$B$10 遇到与在 B2 在当前表格中。
考虑到这些要点,我们应该 Sheet1!$C$1:$C$10 你需要改变的是,不仅要合并表格和更新单元格,还要增加列。
与谷歌表的VLOOKUP不同,这里没有什么花哨的东西。 你只需输入带有所有需要的列的范围:要更新的那一列和要添加的其他列。 在我的例子中,它将是 Sheet1!$C$1:$D$10 :
=IFERROR(INDEX(Sheet1! $C$1:$D$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),""
或者我可以把范围扩大到 E10 添加两列,而不仅仅是一列。
=IFERROR(INDEX(Sheet1! $C$1:$E$10,MATCH(B2,Sheet1!$B$1:$B$10,0)),""
注意:这些额外的记录总是落在相邻的列中。 如果这些列将有一些其他的值,公式不会覆盖它们。 它将给你一个#REF错误,并有相应的提示。
一旦你清除这些单元格或在其左侧添加新的列,公式结果就会出现。
合并谷歌表格,更新单元格和amp;添加相关列 - 所有这些都使用QUERY
QUERY是谷歌电子表格中最强大的功能之一。 因此,我今天要用它来合并一些谷歌表格,更新单元格并同时添加额外的列,这并不奇怪。
这个函数与其他函数不同,因为它的一个参数使用了一种命令语言。
如果你想知道如何使用谷歌表格的QUERY功能,请访问这篇博文。
让我们先回忆一下更新单元格的公式。
=IFERROR(QUERY(Sheet1!$A$2:$C$10, "select C where&QUERY!$B2:$B$10&"),""
在这里,QUERY查看Sheet1中包含所需数据的表格,将B列中的单元格与我当前的新表格相匹配,并合并这些表格:从C列中提取每个匹配的数据。 IFERROR保持结果无错误。
要为这些匹配添加额外的列,你需要对这个公式做2个小改动。
- 列出了所有必须要有的列,用于 选择 指挥。
...选择C、D、E...
- 扩大范围,相应地看。
...QUERY(Sheet1! $A$2:$E$10,...
这里有一个完整的公式。
=IFERROR(QUERY(Sheet1!$A$2:$E$10, "select C,D,E where&Sheet4!$B2:$B$10&"),""
它更新了股票列,并从查找表拉出2个额外的列到这个主表。
如何使用FILTER+VLOOKUP添加不匹配的行
想象一下:你合并了2个谷歌表,用新的信息更新旧的信息,并得到了有额外相关值的新列。
你还能做什么来全面了解手头的记录?
也许可以把不匹配的行添加到你的表的末尾? 这样,你就可以在一个地方得到所有的值:不仅有更新的相关信息的匹配,而且还有不匹配的,使它们也算数。
我惊喜地发现,谷歌表的VLOOKUP知道如何做到这一点。 当与FILTER函数一起使用时,它可以合并谷歌表,也可以添加不匹配的行。
提示:最后,我还将展示一个插件如何用一个复选框做同样的事情。
谷歌表的FILTER参数是很清楚的。
=FILTER(range, condition1, [condition2, ...] )- 范围 是你想要过滤的数据。
- 条件1 是一个具有过滤标准的列或行。
- 标准2,标准3,等等。 是完全可选的。 当你需要使用几个标准时,请使用它们。
提示:你将在这篇博文中了解更多关于谷歌表格的FILTER功能。
那么,这两个函数是如何相处并合并Google表单的呢? 嗯,FILTER根据VLOOKUP创建的过滤条件返回数据。
看看这个公式。
=FILTER(Sheet1!$A$2:$E$10,ISERROR(VLOOKUP(Sheet1!$B$2:$B$10,$B$2:$C$10,2, FALSE)=1))
它扫描2个谷歌表进行匹配,并将不匹配的行从一个表中拉到另一个表中。
让我解释一下它是如何工作的。
- FILTER进入查询表(一个包含所有数据的表格--)。 表1!$A$2:$E$10 )并使用VLOOKUP来获得正确的行。
- VLOOKUP从该查询表的B列获取项目名称,并与我当前表中的名称相匹配。 如果没有匹配,VLOOKUP会说有一个错误。
- ISERROR将每个错误标记为1,告诉FILTER将这一行带入另一个页面。
结果是,该公式为那些没有出现在我的主表中的浆果拉出了3条额外的行。
只要你稍微玩一玩这个方法,就没有那么复杂了 :)
但是,如果你不想把时间花在这上面,有一个更好、更快捷的方法--没有一个函数和公式。
无公式匹配&的方法;合并数据 - 合并表插件
合并表插件包含了合并谷歌表时的所有三种可能性。
- 它根据匹配情况更新相关单元格
- 为这些匹配添加新的列
- 插入不匹配的记录的行
为避免任何混淆,该过程分为 5个简单的步骤 :
- 前两个 是你的地方 选择你的桌子 即使它们是在不同的电子表格中。
- 在 三维码 ,你要 选择关键列 应检查是否匹配。
- ǞǞǞ 第四步 让你 设置要更新的列 有新的记录 或添加 从一张纸到另一张纸。
过了几秒钟,我才看到结果。
从Google Sheets商店安装Merge Sheets,你会发现它处理更大的表格的速度一样快。 由于Merge Sheets的存在,你会有更多时间处理重要的事情。
我也会留下这个3分钟的演示视频,以帮助你做出决定:)
带公式的电子表格示例
合并谷歌表,添加相关列& 非匹配行--公式示例(复制此电子表格)