Excel单元格匹配-从工作表复制其他数据

Excel单元格匹配-从工作表复制其他数据,excel,Excel,基本上,我有一张非常简单的工作表,但我正在努力:( 基本上有几个标题,如“姓名”、“经理”、“信用” 我得到一张包含所有姓名列表的工作表,希望宏检查姓名是否在列表中,然后将信用单元从名为“代理”的工作表复制到名为“信用”的工作表。我尝试了大量解决方案,但没有成功 谢谢您是否尝试过查找?此函数在单行或列中查找值,并在不同的行或列中对其进行匹配。您需要的关键函数是VLOOKUP,它接受查找值(要搜索的名称可以是单元格引用)、表数组(要查找的范围-搜索此范围的第一列查找值,返回第一个字母匹配或超过查找

基本上,我有一张非常简单的工作表,但我正在努力:(

基本上有几个标题,如“姓名”、“经理”、“信用”

我得到一张包含所有姓名列表的工作表,希望宏检查姓名是否在列表中,然后将信用单元从名为“代理”的工作表复制到名为“信用”的工作表。我尝试了大量解决方案,但没有成功


谢谢

您是否尝试过
查找
?此函数在单行或列中查找值,并在不同的行或列中对其进行匹配。

您需要的关键函数是VLOOKUP,它接受查找值(要搜索的名称可以是单元格引用)、表数组(要查找的范围-搜索此范围的第一列查找值,返回第一个字母匹配或超过查找值的第一个值,因此必须对列表进行排序,并将结果与查找值进行比较,以查看它们是否真正匹配)和列索引号(第一列为1-从该列返回值)


此示例将在代理工作表的A列中查找当前工作表A1中的值,并从代理工作表的相应B列返回值或“不匹配”如果没有。

将您共享的Excel文件作为参考,您可以使用以下内容,前提是工作表
Agent
上的第一列按升序排序。在工作表
Credit
的单元格
C2
中,输入

=LOOKUP($A2,Agent!$A:$A,Agent!$B:$B)
然后选择该单元格
C2
,并向下拖动右下角。这是最简单的版本,但如果在工作表
Agent
上找不到工作表
Credit
中的名称,则会产生奇怪的结果。更好的版本是

=IF($A2<>LOOKUP($A2,Agent!$A:$A,Agent!$A:$A),"Not Found",LOOKUP($A2,Agent!$A:$A,Agent!$B:$B))
=IF($A2查找($A2,代理!$A:$A,代理!$A:$A),“未找到”,查找($A2,代理!$A:$A,代理!$B:$B))

if的第一部分检查是否在工作表
Agent
上找到了代理名称。如果没有,结果是“找不到”,否则结果与前一个函数中的查找结果相同。

在阅读lori_m的评论后查找lookup vs VLOOKUP时,我没有找到任何关于相对性能的信息。我发现,大多数情况下,查找仍然是在Excel中,以便与旧版兼容,而VLOOKUP或HLOOKUP更灵活


然而,我确实遇到了一系列文章,从一开始就认为索引和匹配函数提供了更好的解决方案。

我尝试了一些方法,还没有尝试过查找,但有什么想法吗?我正在寻找一个宏,如果可能的话,它将为我做这件事,因为代理字段将被填充。我需要它做的就是抓取从“代理”表中删除数据,并查看名为“信用”的表上是否存在该名称,以及是否存在该名称,以复制单元格“信用”在名称之后,使用函数将提供比在宏中循环单元格更好的性能。我只会使用宏来帮助使用其他工作表中所需的数据建立草稿表,并且我只会在必要时这样做。此外,该宏可以作为示例记录一次。这只是说明不匹配,即使我已配置它第一个参数(Lookup_value)需要只有一个单元格。我希望如果您给它一个范围(如A2:A7),它将仅在所有六个单元格都匹配表_数组中的六个单元格(中间没有任何内容)时才能找到答案。通常,返回“不匹配”意味着它在表数组的第一列中找不到与查找值匹配的值。这是到目前为止我所拥有的内容的副本?+1如果有许多值要检查,第二个查找公式将比VLOOKUP替代方法(二进制v线性搜索)快得多@lori_m很有趣,谢谢你的评论和投票。这些实现细节是否有文档记录?Excel MVP Charles Williams最近在这里发布的一篇博文:为了澄清,我指的是VLOOKUP,最后一个参数设置为FALSE,因为精确匹配速度慢。我希望你其他帖子中的公式与t中的查找公式相同绩效的erms。
=IF($A2<>LOOKUP($A2,Agent!$A:$A,Agent!$A:$A),"Not Found",LOOKUP($A2,Agent!$A:$A,Agent!$B:$B))