excel 匹配两个不同工作簿中的文本,返回不同列中的值

rnmwe5a2  于 2022-12-24  发布在  其他
关注(0)|答案(4)|浏览(163)

我一生中从未对Excel如此沮丧过。我在工作中遇到了两个主要的截止日期,而将正确的信息提供给正确的人的唯一方法就是解决下面的问题。
我有两个工作簿,每个工作簿中不同的"客户"有不同的指标,我需要将所有信息放到一个工作表中-不能简单地复制/粘贴数据,因为我可以将客户A放在第一个工作簿中,但不能放在第二个工作簿中。此外,不能使用"客户名称"作为工作簿之间的唯一标识符,因为一个可能是"John Smith Company",另一个可能是:"约翰·史密斯公司."
下面是一个非常简单的例子:
练习册A

  • 客户ID
  • 员工人数

练习册B

  • 客户ID
  • 作为客户的年限
  • 位置
  • 客户名称

在您将我标记为重复问题之前,请知道我已经尝试了以下公式,但没有结果:
= V查找(D2,[其他工作表. xlsx]工作表1! $A:$D,2,错误)
=如果(ISERROR(精确(D2,[其他工作表. xlsx]工作表1! $1:$1048576)),"真",VLOOKUP(D2,[其他工作表. xlsx]工作表1! $1:$1048576,2,FALSE))
我在这里失去了理智-任何想法都是美妙的。提前感谢你!

    • 预计到达时间:**
    • 我使用的是Excel 2011 Mac版14.4.1。**
insrf1ej

insrf1ej1#

您是否尝试过:
第一个月

clj7thdc

clj7thdc2#

我想最简单的方法就是用
=match(clientID_WorkbookA_CellA2,ClientID_WorkBookB,0)以查看哪些ID同时出现在两个列表中。然后手动调整相同但键入不正确的客户端ID。
那么任何不匹配项都不在工作簿B中。筛选这些项并将它们追加到工作簿B中的表的末尾。
然后创建一个名为number of employees workbook B的列,并使用sumif。类似于:

=sumif(ClientID_WorkBookA,ClientID_WorkBookB_CellA2,Employees_WorkBookA).

显然,没有看到实际的电子表格,很难提供更好的代码,但我相信你理解的jist。

    • 更新**

工作表A
在单元格E2中输入=trim(D2)并向下拖动
工作表B
在单元格O2中输入=trim(D2)并向下拖动
在单元格C2中输入=sumif(O2,sheetA!E:E,sheetA!B:B)并向下拖动
如果有任何错误,则意味着O列中的客户ID在表A中不存在。

qyswt5oh

qyswt5oh3#

使用Vlookup时,您要检查的值必须在您要查找的范围的最左列中。您当前的公式正在尝试根据客户端名称查找客户端ID。
您是否尝试过对D列执行Match()操作?您可以将此操作与Index()函数结合使用以获得所需的结果:

=INDEX([othersheet.xlsx]sheet1!$B:$B,MATCH(D2,[othersheet.xlsx]sheet1!$D:$D,FALSE))
frebpwbc

frebpwbc4#

除非必须在Excel中找到解决方案,否则可以通过MS Access找到解决方案。
将两个excel文件导入Access中的数据库,打开查询的设计视图,打开两个文件,在客户ID上链接(内部连接),将两个文件中的必填字段拖动到下表中,并在查询的数据库视图中查看结果。
用合适的名称保存并关闭QUERY,右键单击左侧窗格中保存的QUERY;导出文件到excel. Excel文件准备就绪.
据称,原始文件中的数据排列在多个矩阵中。如果在同一个工作表中创建了多个表,则命名范围是一个好主意,以便将数据导入数据库。所有表的标题和列中数据的顺序都是相似的。多个工作表不会造成任何问题,因为Access将询问是要导入工作表还是要导入范围。

相关问题