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

时间:2014-10-02 13:29:38

标签: excel excel-formula matching vlookup excel-2011

在我的生活中,我从未对Excel感到沮丧。我正在面对工作中的两个主要截止日期,并且向正确的人提供正确信息的唯一方法是解决下面的问题。

我有两个工作簿,每个工作簿都有不同的“客户”指标,我需要将所有信息都放到一张表中 - 不能简单地复制/粘贴数据,因为我可以在第一个中使用客户端A.工作簿,但不是第二个。此外,不能使用“客户名称”作为工作簿之间的唯一标识符,因为一个可能是“约翰史密斯公司”,另一个可以说是“约翰史密斯公司”。

这是一个非常简单的例子:

练习册A

  • 客户ID
  • 员工人数

练习册B

  • 客户ID
  • 作为客户的岁月
  • 位置
  • 客户名称

在您将我标记为重复问题之前,请知道我已尝试以下公式无效:

  

= VLOOKUP(!D2,[othersheet.xlsx] Sheet 1中$ A:$ d,2,FALSE)

     

= IF(ISERROR(EXACT(D2,[othersheet.xlsx] sheet1!$ 1:$ 1048576)),“True”,VLOOKUP(D2,[othersheet.xlsx] sheet1!$ 1:$ 1048576,2,FALSE))< / p>

在这里失去理智 - 任何想法都将是奇妙的。提前谢谢!

ETA:

我正在使用Excel 2011 for Mac,v.14.4.1。

4 个答案:

答案 0 :(得分:0)

我认为最简单的方法是使用

工作簿A中的

=match(clientID_WorkbookA_CellA2,ClientID_WorkBookB,0)查看两个列表中的ID。然后手动调整相同但输入错误的客户端ID。

然后任何不匹配的内容都不在工作簿中B.过滤这些并将它们附加到工作簿B中表的末尾。

然后创建一个标记为员工工作簿B的列并使用sumif。类似的东西:

=sumif(ClientID_WorkBookA,ClientID_WorkBookB_CellA2,Employees_WorkBookA).

显然,如果没有看到实际的电子表格,很难提供更好的代码,但我确信你理解了这个问题。

<强>更新

工作表A

在单元格E2中放置=trim(D2)并向下拖动

工作表B

在单元格O2中放置=trim(D2)并向下拖动

在单元格C2中放置=sumif(O2,sheetA!E:E,sheetA!B:B)并向下拖动

如果有任何错误,则表示您在O列中的客户ID不存在于表A中。

答案 1 :(得分:0)

你尝试过吗:
=VLOOKUP(D2,[othersheet.xlsx]sheet1!$A$1:$D$1000,2,FALSE)

答案 2 :(得分:0)

使用Vlookup时,您检查的值必须位于您正在查找的范围的最左侧列中。您当前的公式正在尝试根据客户端名称查找客户端ID。

您是否尝试对D列进行匹配()?您可以将其与Index()函数结合使用以获得所需内容:

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

答案 3 :(得分:0)

除非在Excel中找到解决方案是强制性的,否则可以通过MS Access找到解决方案。

将excel文件导入Access中的数据库,打开QUERY的设计视图,打开两个文件,链接(innerjoin)客户ID,将两个文件中的必填字段拖到下面的表格中,然后查看导致QUERY的数据库视图。

使用正确的名称保存并关闭QUERY。右键单击左侧窗格中保存的QUERY;将文件导出为ex​​cel。 Excel文件准备就绪。

声明该数据在原始文件中排列在多个矩阵中。如果在同一工作表中创建了多个表,则命名范围是将数据轻松导入数据库的好主意。列中的标题和数据顺序对于所有表都是相似的。多个工作表没有问题,因为Access会询问是要导入工作表还是要导入Range。