我一生中从未对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。**
4条答案
按热度按时间insrf1ej1#
您是否尝试过:
第一个月
clj7thdc2#
我想最简单的方法就是用
=match(clientID_WorkbookA_CellA2,ClientID_WorkBookB,0)
以查看哪些ID同时出现在两个列表中。然后手动调整相同但键入不正确的客户端ID。那么任何不匹配项都不在工作簿B中。筛选这些项并将它们追加到工作簿B中的表的末尾。
然后创建一个名为number of employees workbook B的列,并使用sumif。类似于:
显然,没有看到实际的电子表格,很难提供更好的代码,但我相信你理解的jist。
工作表A
在单元格E2中输入
=trim(D2)
并向下拖动工作表B
在单元格O2中输入
=trim(D2)
并向下拖动在单元格C2中输入
=sumif(O2,sheetA!E:E,sheetA!B:B)
并向下拖动如果有任何错误,则意味着O列中的客户ID在表A中不存在。
qyswt5oh3#
使用Vlookup时,您要检查的值必须在您要查找的范围的最左列中。您当前的公式正在尝试根据客户端名称查找客户端ID。
您是否尝试过对D列执行Match()操作?您可以将此操作与Index()函数结合使用以获得所需的结果:
frebpwbc4#
除非必须在Excel中找到解决方案,否则可以通过MS Access找到解决方案。
将两个excel文件导入Access中的数据库,打开查询的设计视图,打开两个文件,在客户ID上链接(内部连接),将两个文件中的必填字段拖动到下表中,并在查询的数据库视图中查看结果。
用合适的名称保存并关闭QUERY,右键单击左侧窗格中保存的QUERY;导出文件到excel. Excel文件准备就绪.
据称,原始文件中的数据排列在多个矩阵中。如果在同一个工作表中创建了多个表,则命名范围是一个好主意,以便将数据导入数据库。所有表的标题和列中数据的顺序都是相似的。多个工作表不会造成任何问题,因为Access将询问是要导入工作表还是要导入范围。