0

在我的生活中,我从未对 Excel 感到如此沮丧。我在工作中遇到了两个主要的截止日期,而将正确的信息传递给正确的人的唯一方法是解决以下问题。

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

这是一个非常简化的示例:

工作簿 A

  • 客户编号
  • 在职员工人数

工作簿 B

  • 客户编号
  • 客户年限
  • 地点
  • 客户名称

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

=VLOOKUP(D2,[othersheet.xlsx]sheet1!$A:$D,2,FALSE)

=IF(ISERROR(EXACT(D2,[othersheet.xlsx]sheet1!$1:$1048576)), "True", VLOOKUP(D2,[othersheet.xlsx]sheet1!$1:$1048576,2,FALSE))

在这里失去理智 - 任何想法都会很棒。先感谢您!

预计到达时间:

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

4

4 回答 4

0

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

您是否尝试过对 D 列执行 Match() ?您可以将其与 Index() 函数结合使用以获得您想要的内容:

=INDEX([othersheet.xlsx]sheet1!$B:$B,MATCH(D2,[othersheet.xlsx]sheet1!$D:$D,FALSE))
于 2014-10-02T15:14:30.020 回答
0

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

=match(clientID_WorkbookA_CellA2,ClientID_WorkBookB,0)在工作簿 A 中查看两个列表中都有哪些 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 中不存在。

于 2014-10-02T13:58:16.213 回答
0

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

于 2014-10-02T14:01:46.547 回答
0

除非在 Excel 中找到解决方案是一种强迫,否则可以通过 MS Access 找到解决方案。

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

使用正确的名称保存并关闭 QUERY。右键单击左侧窗格中保存的查询;将文件导出到excel。Excel 文件已准备就绪。

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

于 2018-02-18T16:10:39.100 回答