我试图通过将工作表“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
显示。如果不是,则单元格上显示空字符串。