跨多个工作表的多个列的Google表格VLOOKUP

时间:2019-04-26 20:25:43

标签: google-sheets vlookup google-sheets-formula

我不是100%确定VLOOKUP是用于此目的的正确公式,但是我正在尝试以下操作:

=ArrayFormula(IF(len(B2:B),vlookup(B2:B,{‘New1′!B3:C;’New2′!B3:C;’New3’!B3:C},2,FALSE),””))

我想修改以上公式以执行以下操作。我有一个带有多个标签的Google表格。有一个选项卡将所有数据存储为元数据,以填充其他6个选项卡。我将元数据分为6个标签,但要避免重复这些标签中的数据。因此,我想创建一个列,该列将向我显示当前已放置数据的位置。这是一个示例:

主表具有以下数据:

Name1, Phone1, Address1, E-mail1 
Name2, Phone2, Address2, E-mail2
Name3, Phone3, Address3, E-mail3 
Name4, Phone4, Address4, E-mail4

将有4个选项卡,其中我具有相同的列(名称,电话,地址,电子邮件)。我将把主表中的数据拆分为这4个选项卡。如果我在选项卡3中放置“ Name2,Phone2,Address2,E-mail2”,我希望公式可以查看VLOOKUP中的整个数据块,而不仅是名称,如果显示,则显示“标签3”。由于元数据具有相同的名称或地址,因此我希望VLOOKUP查看多个标签(选项卡1,标签2,标签3,标签4),然后与多个列进行比较以进行匹配(名称,电话,地址,电子邮件与主表中的相同),如果找到匹配项,它将显示某种形式的选项卡指示(“选项卡3”)。希望这是有道理的。

1 个答案:

答案 0 :(得分:1)

=ARRAYFORMULA(IFERROR(SUBSTITUTE(SPLIT(TRIM(
    TRANSPOSE(QUERY(TRANSPOSE(SUBSTITUTE(IF(LEN(A2:A), {
 IF(TRANSPOSE(QUERY(TRANSPOSE(A2:D),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE(A2:D),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE(Sheet1!A2:D),,999^99)),1,0)), "Sheet1", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE(A2:D),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE(A2:D),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE(Sheet2!A2:D),,999^99)),1,0)), "Sheet2", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE(A2:D),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE(A2:D),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE(Sheet3!A2:D),,999^99)),1,0)), "Sheet3", ),
 IF(TRANSPOSE(QUERY(TRANSPOSE(A2:D),,999^99))=IFERROR(VLOOKUP(
    TRANSPOSE(QUERY(TRANSPOSE(A2:D),,999^99)),
    TRANSPOSE(QUERY(TRANSPOSE(Sheet4!A2:D),,999^99)),1,0)), "Sheet4", )}, ),
 " ", "♦")),,999^99))), " "), "♦", " ")))

0