因此,这回答了您如何使用 Vlookup 功能进行操作,但仅在一个单元格中。
在您的示例中,假设每个数据表都具有以下单元格引用:
表 1:Sheet1!A1:C3
a d g
b e h
c f i
表 2:Sheet2!A1:C3
c j m
a k n
b l o
这就是应该如何构建公式的方式。
加入公式
=ArrayFormula(
{
Sheet1!A1:C,
vlookup(Sheet1!A1:A, {Sheet2!A1:A, Sheet2!B1:C}, {2,3}, false)
}
)
让这个公式起作用的关键是了解如何在 Vlookup Range 中使用大括号。您基本上将 Range 的第一个单元格引用定义为与 Vlookup Search_Key 匹配的列。范围中的其余单元格引用与您要加入的列有关。
Index 写成 {2,3} 以返回 Range 的第二列和第三列(Range 总共由 3 列组成);大括号与 Vlookup 索引中的 Arrayformula 无关,但对于从 Vlookup 函数返回多列是必需的。不写 {1,2,3} 的原因是您不想包含用于加入目的的列。
table2 中用于连接的列位于不同列中的示例(在要连接的数据的右侧)
即使第二个表中的连接列位于该表的第三列,也可以使用这种连接公式。假设此示例中的原始数据如下所示:
表 1(表 1):
a d g
b e h
c f i
表 2(表 2):
j m c
k n a
l o b
如果你这样写公式,你仍然会得到想要的结果(如连接数据表中所示):
=ArrayFormula(
{
Sheet1!A1:C,
vlookup(Sheet1!A1:A, {Sheet2!C1:C, Sheet2!A1:B}, {2,3}, false)
}
)
连接数据表:
a d g k n
b e h l o
c f i j m
在 Join-formula 中,注意 Table2 的第三列位于 Vlookup Range 中的第一个单元格引用!
这样做的原因是,当您在 Range 中使用大括号(与 Arrayformula 一起使用)时,Vlookup Search_Key 不会在原始数据中查找列作为公分母,而是使用其中的 Array花括号作为参考来查找作为公分母的列(默认情况下,这是 Range 的第一列)。
我写了一个关于这个主题的综合指南,叫做: