我有两个工作表:一个有列(是/否),第二个是人员列表 . 如果用户在工作表2上的姓氏也在工作表1上,我想将该列标记为“是” . 有没有办法编写脚本?理想情况下,我想这样做:
遍历工作表1上的一行 .
如果该行中的姓氏与工作表2上的名称匹配,则将列单元格标记为'Yes'
最有效的方法是使用工作表函数而不是诉诸VBA . 在“是/否”列中输入以下公式并填写 .
=IF(ISERROR(MATCH(A1,Sheet1!$A$1:$A$5,0)),"No","Yes")
这里 A1 是您要查找的Sheet2的名称, Sheet1!$A$1:$A$5 是您要查看的Sheet1上的名称列表 .
A1
Sheet1!$A$1:$A$5
EDIT :
如果您只想匹配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")
1 回答
最有效的方法是使用工作表函数而不是诉诸VBA . 在“是/否”列中输入以下公式并填写 .
这里
A1
是您要查找的Sheet2的名称,Sheet1!$A$1:$A$5
是您要查看的Sheet1上的名称列表 .EDIT :
如果您只想匹配Sheet1上列表的第一个单词,您仍然可以使用数组公式来执行此操作 .
按Ctrl Shift Enter输入此数组公式 . 公式应显示在公式栏中的内 .
如果您的名字列表的格式为“Last First”,则可以使用 . 相反,如果名称的格式为“Last,First”,则可以使用以下代码 .