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