将多列与另一张表进行比较,如果匹配则返回 true

将多列与另一张表进行比较,如果匹配则返回 true

我有一张名为 Test 的工作表,其中包含列

[Category],[SubCategory],[Name], [Is in share?]

需要比较的(除了列[有分享吗?]) 工作表名为 Share。Share 还包含列[Category], [SubCategory], [Name]

如果 Test 列中的值[Category],[SubCategory],[Name] 与 Share 列中的值匹配,[Category], [SubCategory], [Name]则返回 true。值 true 应该在列中[Is in share?]

我尝试使用 vlookup,但没有成功。

Sheet Test
[Category]  [SubCategory]       [Name]        [Is in share?]
Food      |||  Hard      |||    FoodHard1 ||| False
Food      |||  Hard      |||    FoodHard2 ||| True
Food      |||  Soft      |||    FoodSoft1 ||| False
Table     |||  Wood      |||    TableWood1||| True

Sheet Share
[Category]   [SubCategory]      [Name]         [Date]         [Site]
Food      |||  Hard      |||    FoodHard23 ||| Jan-02-2003   ||| AB
Food      |||  Hard      |||    FoodHard2  ||| Jan-02-2003   ||| CA
Food      |||  Soft      |||    FoodSoft15 ||| Jan-05-2003   ||| KK
Table     |||  Wood      |||    TableWood1 ||| Jan-05-2003   ||| AB

答案1

使用=sumproduct()这将测试一系列行的多个条件。每个条件返回 1 或 0,然后将它们相乘得到 1(所有条件都匹配)或 0(一个或多个条件不匹配)。

=sumproduct((Test!$A1=Share!$A$1:$A$100)*(Test!$B1=Share!$B$1:$B$100)*(Test!$C1=Share!$C$1:$C$100)*1)

该公式假设您的数据从 A1 开始,没有头行。它包含三个条件,每个条件比较两个工作表中的类别、子类别和名称,迭代地比较第 1 行到第 100 行(根据需要更改)。最后一个条件*1只是让公式返回 1 或 0。您可以将其包装在=if()语句中以表示如果结果为 1 则返回 true 否则返回 false

=countifs()在较新版本的 Excel 中,可以使用和=sumifs在所有版本的 Excel 中使用数组公式来执行此操作,还有其他方法。

相关内容