在我的生活中,我从未对Excel感到沮丧。我正在面对工作中的两个主要截止日期,并且向正确的人提供正确信息的唯一方法是解决下面的问题。
我有两个工作簿,每个工作簿都有不同的“客户”指标,我需要将所有信息都放到一张表中 - 不能简单地复制/粘贴数据,因为我可以在第一个中使用客户端A.工作簿,但不是第二个。此外,不能使用“客户名称”作为工作簿之间的唯一标识符,因为一个可能是“约翰史密斯公司”,另一个可以说是“约翰史密斯公司”。
这是一个非常简单的例子:
练习册A
练习册B
在您将我标记为重复问题之前,请知道我已尝试以下公式无效:
= 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。
答案 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;将文件导出为excel。 Excel文件准备就绪。
声明该数据在原始文件中排列在多个矩阵中。如果在同一工作表中创建了多个表,则命名范围是将数据轻松导入数据库的好主意。列中的标题和数据顺序对于所有表都是相似的。多个工作表没有问题,因为Access会询问是要导入工作表还是要导入Range。