Excel单元格匹配 – 从工作表复制其他数据
基本上我有一个非常简单的表,但我挣扎着:(
基本上有几个标题,如“姓名”,“经理”,“信用”
我得到一张表,列出所有名称等,并希望macros检查名称是否在列表中,然后将信用单元从名为“代理”的工作表复制到名为“信用”的工作表尝试加载的解决scheme,但无济于事。
谢谢
以共享的Excel文件作为参考,可以使用以下内容, 前提是表单Agent
中的第一列按升序sorting 。 在表单Credit
单元格C2
中,input
=LOOKUP($A2,Agent!$A:$A,Agent!$B:$B)
然后select该单元格C2
然后拖动右下angular。 这是最简单的版本,但是如果在图纸Agent
上没有find来自图纸Credit
的名称,则会产生奇怪的结果。 更好的版本是
=IF($A2<>LOOKUP($A2,Agent!$A:$A,Agent!$A:$A),"Not Found",LOOKUP($A2,Agent!$A:$A,Agent!$B:$B))
if的第一部分检查是否在工作表Agent
上find代理名称。 如果不是,则结果为“未find”,否则结果与前一个函数的查找结果相同。
在阅读lori_m的评论后,查找LOOKUP vs VLOOKUP时,我没有发现任何关于相对性能的信息。 大多数情况下,我发现LOOKUP只在Excel中保留旧版兼容性,而VLOOKUP或HLOOKUP更加灵活。
但是,我遇到了一系列的文章,从http://exceluser.com/blog/420/excel%E2%80%99s-vlookup-vs-index-match-functions.html开始,它提示INDEX和MATCH函数提供更好的解决scheme。
你尝试过Lookup
吗? 这个函数在一行或一列中find一个值,并在不同的行或列中对它进行匹配。
你需要的关键函数是VLOOKUP,其中需要Lookup_value(search名称可以是单元格引用),Table_array(要查找的范围 – 它在Lookup_value范围内search该范围的第一列,返回第一个字母匹配或Lookup_value之后的第一个值,因此列表必须进行sorting,并将结果与Lookup_value进行比较以查看它们是否真的匹配)以及Col_index_number(第一列是1 – 它将返回此列中的值)。
=IF(VLOOKUP(A2, Agent!$A:$B,1)=A2,VLOOKUP(A2, Agent!$A:$B,2),"No match")
此示例将查找代理工作表A列中当前工作表A1的值,并返回代理工作表相应B列中的值,如果没有,则返回“不匹配”。