EXCEL:如何合并2组客户数据

我相信这个问题有一个非常简单的答案,但经过广泛的研究后,我不知何故找不到我想要的东西。 我不是一个擅长的职业,但有一些经验。

基本上我有两组数据,按客户账号索引,并给出一个文件中的销售额,利润,成本等一定的数值​​,销售代表负责,在另一个文件中联系的次数。

我现在的目标是将这两个文件合并为一个,以便我在第一列中具有客户ID,并且在一张纸上在其旁边的列中具有与该客户相关的所有数据。

然而,两张纸上的客户号码没有以任何方式sorting,所以我不能复制和粘贴,我正在处理一个相当大的数据集,所以我不能只是手动。 另外,第一张表中的客户编号比第二张中的多,因为一定数量的客户缺less一些数据。

我如何基本上自动合并属于每个客户的数据,以便它最终显示在一行?

我build议您通过创build第三个全面的列表来处理这两个列表的合并,这个列表从您的原始数据文件中提取。

设置新的结果表

假设一个列表位于Book1的sheet1中,另一个列表位于Book2的sheet1中。 打开一个新的Excel文件。 把标题沿着顶部。 接下来,您将创build一个索引,显示按数字sorting的所有唯一客户ID号码。 这只有在没有重复的ID (除了引用相同的cusotmer的ID之外)的情况下才起作用。

将客户ID列从Book1手动复制到新书中。 Book1客户下方的Book2手动复制客户编号,位于新书中同一列。 突出显示客户ID列。 转到数据function区,然后删除重复项。 然后右键点击您的数据,然后点击“sorting”。 这将为您留下一个有序的客户ID列,其他标题下的所有其他字段将为空白。

Vlookup公式

接下来,您将使用2个查找公式,类似于@StaceyBurns下面的build议。 Vlookup采用特定的唯一值,并在数据块最左边的列中查找该值。 然后find第一次匹配该值,并从该行的单元格返回给定数量的列的值。 举个例子:

 =VLOOKUP(A1,B1:D5,2,FALSE) 

说:取A1中find的唯一值,从第1行:第5行在列B中查找该值,并将第2列的结果从数据块B:D(列C)中返回。 所以如果A1和B3一样,那么这个公式就会给出C3的结果。 FALSE意味着如果没有匹配,它会尝试和近似您的价值。

假设所有文件的客户索引都在列A中。假设所有其他头文件的顺序相同,比方说A1:H1。 在新的工作簿中使用VLOOKUP的公式如下 – 把它放在B2中:

 =VLOOKUP($A2,[Book1.xlsx]Sheet1!$A:$H,column(),FALSE) 

这将为您提供Sheet1列B标题下的匹配数量,其中Sheet1!的客户ID与新书的单元格A2中显示的客户ID匹配。 但是,我们需要知道它是否能够恰当地从Book1中获得一个值 – 因为我们知道一些数据是不完整的。 那么,让我们来看看上面的结果是数字还是文本:

确定是否在Sheet1中find结果

 =OR(ISTEXT(VLOOKUP($A2,[Book1.xlsx]Sheet1!$A:$H,COLUMN(),FALSE)),ISNUM(VLOOKUP($A2,[Book1.xlsx]Sheet1!$A:$H,COLUMN(),FALSE))) 

如果结果是数字或文本,这将返回TRUE。 因此,如果在Book1 Sheet1上找不到该ID号的匹配项,或者结果是空白单元格,它将返回FALSE。 所以现在我们把它放在IF语句中 – 如果它返回true,我们需要Book1的结果。 如果它返回false,我们想通过完全相同的公式来从Book2中获取结果。 整个事情看起来像这样:

最终公式

 =IF(OR(ISTEXT(VLOOKUP($A2,[Book1.xlsx]Sheet1!$A:$H,COLUMN(),FALSE)),ISNUM(VLOOKUP($A2,[Book1.xlsx]Sheet1!$A:$H,COLUMN(),FALSE))),VLOOKUP($A2,[Book1.xlsx]Sheet1!$A:$H,COLUMN(),FALSE),VLOOKUP($A2,[Book2.xlsx]Sheet1!$A:$H,COLUMN(),FALSE)) 

现在,它将尝试从Book1中查找匹配项 – 如果没有匹配的ID,或者如果匹配返回空白值,那么它将尝试从Book2中find一个匹配项。 如果在那里找不到匹配,它将返回#N / A! (这不应该发生,因为这意味着您已经删除了我们直接从Book1&Book2中拉出的一个客户ID)。 如果该数据片段不在任何一个表格中,它可能会返回一个空白单元格。 此公式可以从结果表中的B2一直复制到数据块的右下angular。

您可以在第一张纸上使用VLOOKUPfunction将第二张纸上的数据带入。

因此,例如,在第一张纸上取一个空列,并添加VLOOKUP函数,如下所示:

 =VLOOKUP(cell to lookup, set of data on 2nd file, column index on 2nd file of data you want, TRUE/FALSE Boolean to ask for either close match or exact match ) 

如果您的客户ID在列A中,而您的第二张表格如下所示:

A1客户ID

B2销售代表

C3联系的次数

那么你会首先查找销售代表:

 =VLOOKUP(A1,Sheet2!$A$1:$C$15,2,FALSE) 

然后双击该单元格的右下angular以填充所有行的公式。

然后在一个新的单元格中做相同的次数联系:

 =VLOOKUP(A1,Sheet2!$A$1:$C$15,3,FALSE) 

(注意:在上面的VLOOKUP我使用了C15作为例子,它应该是文件2中的行数)

更多信息: https : //support.office.com/zh-cn/article/VLOOKUP-function-0bbc8083-26fe-4963-8ab8-93a18ad188a1