遍历不同工作表中的单元格来解析字符串

时间:2012-01-10 18:54:30

标签: excel vba

我有两个工作表:一个有列(是/否),第二个是人员列表。如果用户在工作表2上的姓氏也在工作表1上,我想将该列标记为“是”。有没有办法编写脚本?理想情况下,我想这样做:

  • 在工作表1中迭代一行。
  • 如果该行中的姓氏与工作表2上的名称匹配,则将列单元格标记为“是”

1 个答案:

答案 0 :(得分:2)

最有效的方法是使用工作表函数而不是诉诸VBA。在“是/否”列中输入以下公式并填写。

=IF(ISERROR(MATCH(A1,Sheet1!$A$1:$A$5,0)),"No","Yes")

此处A1是您要查找的Sheet2中的名称,而Sheet1!$A$1:$A$5是您要查看的Sheet1上的名称列表。

编辑:

如果您只想匹配Sheet1上列表的第一个单词,您仍然可以使用数组公式来执行此操作。

=IF(ISERROR(MATCH(A1,LEFT(Sheet1!$A$1:$A$5,FIND(" ",Sheet1!$A$1:$A$5)-1),0)),"No","Yes")

按Ctrl + Shift + Enter键输入此数组公式。公式应显示在公式栏中的{...}内。

如果你的名字列表的格式是“Last First”,那么这将有效。如果相反,名称的格式为“Last,First”,则可以使用以下代码。

=IF(ISERROR(MATCH(A1,LEFT(Sheet1!$A$1:$A$5,FIND(", ",Sheet1!$A$1:$A$5)-1),0)),"No","Yes")
相关问题