检查 sheet 1 和 sheet 2 中是否存在满足多个条件的数据

Check if data that satisfies multiple criteria exists in both sheet 1 and sheet 2

我的 table 包含 2 个列数不同的工作表。我想为每一行添加一个显示 true 或 false (或任何其他 2 个相反值)的列,具体取决于该行是否满足 2 个条件,即:sheet1!col1=sheet2!col1sheet1!col2=sheet2!col2.

您会在下面找到一张插图。 我试过使用

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

但我收到一条错误消息

vlookup evaluates to an out of bound range

所以我想试试

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

但我不知道如何写条件 where (sheet1)col1=(sheet2)col1 & (sheet1)col2=(sheet2)col2,我也不知道我是否可以使用不同维度的 table。我终于试过了

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

但它总是 returns 1。 有什么想法吗?

Sheet 1

Sheet 2

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

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

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

要使查询正常工作,您需要使用正确的语法来访问当前 sheet:

中的单元格
=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 和匹配存在问题(如上所示),我会遭到同事的抨击 - 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 也可以写成自扩展数组公式 - 但那就是问题的简短回答。