检查工作表1和工作表2中是否都存在满足多个条件的数据

时间:2019-02-22 12:57:43

标签: google-sheets google-sheets-api

我的表格包含2张纸,列数不同。我想添加一列,该列将根据每一行是否满足2个标准(sheet1!col1=sheet2!col1sheet1!col2=sheet2!col2来为每行显示true或false(或其他2个相对的值)。

您将在下面找到插图。 我尝试使用

ARRAYFORMULA(VLOOKUP(A1&B1, {Sheet1!A1:A4&Sheet1!B1:B4,Sheet1!C1}, 3))

但是我收到一条错误消息

  

vlookup评估为超出范围

所以我想尝试

QUERY({Sheet1!A1:B4,A1:B5}, "Select C where ")

但是我不知道如何写条件where (sheet1)col1=(sheet2)col1 & (sheet1)col2=(sheet2)col2,而且我也不知道我是否可以处理不同维度的表。我终于尝试了

=MATCH(A1&B1,{Sheet1!A1:A&Sheet1!B1:B})

,但始终返回1。 有什么想法吗?

第1张  sheet1

第2张 sheet2

1 个答案:

答案 0 :(得分:0)

您的第一个公式几乎是正确的。您收到错误消息是因为大括号中只有一列,因此您必须将其更改为

=ArrayFormula(vlookup(A1&B1,{Sheet2!A:A&Sheet2!B:B},1,false))

并添加'false'以确保它只匹配完全匹配。

要使查询正常工作,您需要使用正确的语法来访问当前工作表中的单元格:

=query(Sheet2!A:B," select A,B where A='"&A1&"' and B='"&B1&"'")

要使匹配生效,您需要将其输入为数组公式,并添加零以指定完全匹配:

=ArrayFormula(MATCH(A1&B1,{Sheet2!A:A&Sheet2!B:B},0))

但是,如果我没有指出上面提到的vlookup和match存在问题,我会不屑一顾-toto&moto不仅会与toto&moto匹配,还会与tot&omoto等匹配。是要添加一个分隔符,例如

=ArrayFormula(vlookup(A1&"|"&B1,{Sheet2!A:A&"|"&Sheet2!B:B},1,false))

=ArrayFormula(MATCH(A1&"|"&B1,{Sheet2!A:A&"|"&Sheet2!B:B},0))

如果要报告“是”和“否”,并且不对空白行给出误报,这些仍需要整理一下-而且vlookup和match可以写为自扩展数组公式-但这是简短的答案问题。