将一张表中的列与另一张表中的列匹配

将一张表中的列与另一张表中的列匹配

我试图通过将工作表“Alpha”中 C 列的所有行与工作表“Beta”中的 C 列进行比较来填充工作表“Alpha”中 A 列的单元格。我希望填充单元格,使得如果工作表“alpha”中的每一行中 C 列中的值与任何工作表“beta”的 C 列中单元格值匹配,则工作表“alpha”的 A 列中将出现 X。如果没有匹配,则不填充单元格。例如,假设工作表“alpha”的 C 列第 2 行是“dog”,如果工作表“Beta”的 C 列中有任何单元格匹配“dog”,则工作表“alpha”的 A 列第 2 行中将出现“X”。

不用 VBA 只使用匹配函数查看不同的工作表能做到这一点吗?

具体输出表 alpha

+---+--+---------+
| X |  | dog     |
+===+==+=========+
|   |  | cat     |
+---+--+---------+
| x |  | dolphin |
+---+--+---------+

工作表 beta

+--+--+-----------+
|  |  | dolphin   |
+==+==+===========+
|  |  | cappybara |
+--+--+-----------+
|  |  | dog       |
+--+--+-----------+


答案1

IF使用、ISNA和函数的组合MATCH。调整以下公式。替换范围以适合您的数据。

=IF(IFNA(MATCH(C1,Beta!$C$1:$C$3,0),0)>0,"X","")
  • MATCH(C1,Beta!$C$1:$C$3,0):检查表 alpha 中的条件是否存在于表 beta 中。
  • IFNA(MATCH(C1,Beta!$C$1:$C$3,0),0):用于错误处理。如果条件存在,MATCH 函数将返回大于 0 的数字。如果条件不存在,则#NA返回。使用ISNA允许返回0而不是#NA
  • IF(IFNA(MATCH(C1,Beta!$C$1:$C$3,0),0)>0,"X",""):检查返回的数字是否大于 0。如果为真,则x显示。如果不是,则单元格上显示空字符串。

相关内容