如果匹配,Google表格从另一个电子表格中提取数据

18

我遇到了一个问题。我有两个电子表格,每个表格的A列相似但不完全相同,一些值在一个表格中而不存在于另一个表格。

如果A列有匹配的值,那么我能从电子表格2中提取数据吗?

因此,电子表格2将类似于:

A            B
item1       100
item2       200
item3       300

电子表格1会有类似以下内容:

A            B
item1       NULL
item2       NULL
item4       NULL

我想根据电子表格2中是否存在来填充电子表格1中的B列(在这种情况下,它会填充项目1和2)。

我尝试过使用VLOOKUP和If语句,但似乎没有进展。

2个回答

34
VLOOKUP函数可以帮您做到这一点,只要将可选的is_sorted参数设置为FALSE,这样就不会返回最接近的匹配项。

以下是一个例子。首先,我们的源表Sheet1。

enter image description here

在Sheet2上,我们使用VLOOKUP从Sheet1中提取信息,使用以下公式(在本例中为B1):

=vlookup(A1,Sheet1!$A$1:$B,2,false)
         ^  -------------- ^    ^
         |     |           |    +-- is_sorted
         |     |           +------- return value from col 2
         |     +------------------- Range for search
         +------------------------- search_key

enter image description here

好的,但是item4的#N/A不太美观。我们可以通过用IFERROR包装VLOOKUP来抑制它。 当省略IFERROR的可选第二个参数时,如果第一个参数求值为错误,则返回一个空单元格:

=IFERROR(vlookup(A1,Sheet1!$A$1:$B,2,false))

在您的示例中,数据来自一个单独的电子表格,而不仅仅是当前电子表格中的另一个工作表。没问题 - VLOOKUP 可以与IMPORTRANGE 结合使用作为其数据源。

=IFERROR(vlookup(A1,IMPORTRANGE("<sheet-id>","Sheet1!A1:B"),2,false))

在这里输入图片描述


建议在 VLOOKUP 外面套上 IFERROR,而不是两次调用 VLOOKUP(也许更关键的是 IMPORTRANGE)。 - AdamL
注意:搜索关键字的列必须位于提取值的列之前,否则将无法正常工作(解决方法:将提取值的列复制到搜索关键字的列之后)。 - Tal Haham

9

由于Google Sheets最近的更改,AdamL和Mogsdad的公式似乎只有在将两个表格连接起来时才能正常工作。

从公式中删除不属于importrange的部分。

=IMPORTRANGE("<URL other sheet>";"Sheet1!A2:C")

你会遇到REF#错误,但当你悬停在错误上时,你可以确认连接已经建立。
我确认了所有单元格都能工作,所以你可以复制粘贴整个公式。
=IFERROR(vlookup(B128;IMPORTRANGE("<URL other sheet>";"SHeet1!A2:C");3;false);)

根据官方文档,您需要从另一个工作表中获取完整的URL链接。请参考下图连接两个Google表格:

connect the 2 Google sheets


这不是一个问题,而是对你的回答的改进。你的回答已经过时了。 - Guy Forssman
在这种情况下,编辑回答使其更清晰和最新 - 这是完全可以接受的行为,并且正是可以赚取您需要的声望以进行评论的活动! - Mogsdad
感谢您的帮助,如果我能让这个公式应用于整个列就好了...遗憾的是,"helas ={"Location";arrayformula"对我不起作用... - Guy Forssman
那真的值得提出一个新问题!(如果你自己解决了,你就可以回答自己的问题...双赢!) - Mogsdad

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接