Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
EXCEL-将值从一张图纸匹配到另一张图纸,然后粘贴结果_Excel - Fatal编程技术网

EXCEL-将值从一张图纸匹配到另一张图纸,然后粘贴结果

EXCEL-将值从一张图纸匹配到另一张图纸,然后粘贴结果,excel,Excel,我正在尽我所能制作最用户友好的excel电子表格。此电子表格采用用户为客户输入的名称,有时是名,有时是名。我还有一张客户名单,包括名字和姓氏。 我需要做的是查看用户输入,将该名称与客户机列表表匹配,然后将其粘贴到原始表中。 例如: 用户表 A 1 Jane 2 Helen Smith 3 John 客户名单 A B 1 Johnson Jane 2 Smith Helen 3

我正在尽我所能制作最用户友好的excel电子表格。此电子表格采用用户为客户输入的名称,有时是名,有时是名。我还有一张客户名单,包括名字和姓氏。 我需要做的是查看用户输入,将该名称与客户机列表表匹配,然后将其粘贴到原始表中。 例如: 用户表

       A           
1    Jane
2    Helen Smith
3    John 
客户名单

       A         B
1   Johnson     Jane
2    Smith      Helen
3    Brown      John
我需要用户表看起来像

       A                 B
1    Jane           Johnson, Jane
2    Helen Smith    Smith, Helen
3    John           Brown, John
我知道这可能是一个复杂的公式,我试着写了一大堆不同的公式,但没有一个能真正做到我所需要的。 最主要的问题是,我需要与我一起工作的其他人,他们不知道如何使用excel,有时无法写出全名,一旦我有了通用公式,他们就可以使用这个电子表格,而需要更改的只是客户列表表。
希望我在这里提供了足够的细节。谢谢你提前给我的任何帮助,非常感谢。如果我找到一个解决方案,我会发布它

我有个主意。在客户工作表的第三列中,构建一个结合了名字和姓氏的公式,如:

=B1&" "&C1
然后选择名称范围(A:C列)并插入表格(不带标题)。您可以稍后输入标题标签:

从“公式”功能区中,打开“名称管理器”。定义一个名为“ClientNames”的新名称,并使其引用fullname列(根据表的名称和列标题名称修改引用公式):

然后,在用户工作表上,选择A列,然后从数据功能区数据验证中选择。允许“列表”并将“源”公式设置为
=ClientNames

最后,指示用户从验证列表中选择客户端名称。这将防止他们做出错误的输入,并对“用户”工作表强制执行标准

如果仍然需要B列中的格式化LastName和FirstName,请执行以下公式:

=RIGHT(A1,LEN(A1)-FIND(" ",A1))&", "&LEFT(A1,FIND(" ",A1)-1)

这个公式看起来可能太复杂了,但很简单

在用户工作表的B列中使用此选项,并跨行拖动

=IFERROR(索引)(Sheet2!A:B,MATCH(左)(A1,LEN(A1)-查找(“,A1)),Sheet2!B:B,0),1)和“,”索引(Sheet2!A:B,MATCH(左)(A1,LEN(A1)-查找(“,A1)),MATCH(左)(索引(Sheet2!A:B),MATCH(左)(A1,LEN(A1)-查找(“,A1)),Sheet2!A:A:A,0),1)和“,”索引(Sheet2!A:A,查找(“,A1)),查找(,A1)和索引(左)(Sheet2!A:A,查找(,A1)),查找(,查找(,0),表2,A1),MATCH(A),索引,A1)和索引(“,)和索引(A:A,A1)和索引)和索引(表2)和索引(A(A1,Sheet2!B:B,0),1)和“,”和索引(Sheet2!A:B,匹配(A1,Sheet2!B:B,0),2),iError(索引(Sheet2!A:B,匹配(A1,Sheet2!A:A,0),1)和“,”和索引(Sheet2!A:B,匹配(A1,Sheet2!A:A,0),2),”))


此公式适用于
A1
,如果您想从搜索
A2
开始,可以对其进行修改。如果需要帮助,请告诉我。此公式可能看起来很大,但在跨范围拖动时非常有用。

使用
匹配
和/或
索引
函数应该非常简单。您为什么不向我们展示您为此所做的尝试ar,并解释什么是不起作用的?另一方面,进行名字匹配只有在确保没有同名客户时才可靠。如果你有两个客户Jane Johnson和Jane Stevenson,没有公式能够正确确定哪个“Jane”你的意思是在用户表的A列中。有时是名字,有时是名字和姓氏。我的同事……有时无法写出我们试图强制执行的@DavidZemens的全名,但收信量很大,所以即使他们通常写全名,有时也不会,我很难单独编辑每个人,所以我会这样做不太确定,当你使用电子表格进行数据收集时会发生这种情况:)我明白了。但最大的问题是字符串匹配带来的限制:如果您只有名称的一部分(名字、名字的一部分等),那么您必须假设查找列表(客户端工作表)不包含任何可能的重复项。否则,就不可能保证准确的结果,因为函数(无论是通过工作表还是使用VBA的复杂UDF)根本无法从字符串“Jane”中确定它是“Jane Johnson”还是“Jane Smith”或“Jane Somethingelse”。