匹配2个excel表中的2个列并粘贴第三个

时间:2018-04-13 01:37:42

标签: excel

我有两个excel表,两个都有匹配的产品编号。我需要做的是匹配产品编号,然后从第一张到第二张复制一列。

我的例子: 第一张表中的C列包含产品编号 第二张表中的A列包含产品编号 我想要匹配C& A然后从第一张到第二张复制B列。

很抱歉,如果之前已经回答过,我的知识基本但我正在努力学习

感谢您的帮助。 CD

3 个答案:

答案 0 :(得分:0)

假设您的数字与C2中的匹配(第1行中的标题)和要在Sheet1上的AC2中复制的数字匹配,这应该可以满足您的需要。将其粘贴到Sheet2上的AC2中,然后将复制拖动到Sheet2上的A列长度。

=IF(IFNA(MATCH(A2,Sheet1!C:C,0), FALSE), INDIRECT("Sheet1!AC"&MATCH(A2, Sheet1!C:C, 0)), "Not Found")

注意这将给出" Not Found"对于在Sheet1上找不到的Sheet2上的值,您可以通过将公式中的字符串"Not Found"替换为您想要的任何内容(例如0)来更改它。

答案 1 :(得分:0)

<强>公式:

您可以将OFFSET与IF配合使用。例如,在表2的B1中,您可以根据需要向下拖动多行,

=IF(A1=Sheet1!C1,OFFSET(Sheet1!A1,0,COLUMNS(Sheet1!A:AC)-1,1,1))

如果您将数据设置为表2中的表格(Ctrl + T并选择了已填充的单元格),则将此公式添加到相应的列中,它将自动过滤公式。

使用标准模块中的代码:

Public Sub AddFormula()
    Dim rng As Range
    With Worksheets("Sheet2")
        If Application.WorksheetFunction.Subtotal(103, .Columns(1).Cells) > 0 Then
            For Each rng In Intersect(.Columns(1), .UsedRange)
                If Not IsEmpty(rng) And Not IsError(rng) Then        'assume ignore empty cells
                    If rng = Worksheets("Sheet1").Cells(rng.Row, "C") Then Worksheets("Sheet1").Cells(rng.Row, "AC").Copy rng.Offset(, 1) 'determine where you want value to go
                End If
            Next rng
        End If
    End With
End Sub

注意:

这是基于您的评论,即您将sheet2 col A与sheet1 col C进行比较,如果匹配则复制sheet1 col AC。

答案 2 :(得分:-2)

我认为两张纸上的产品编号都是唯一的。如果是这样,我建议使用偏移和匹配公式来实现你想要的。

对不起我的半生不熟的答案,因为我只是用手机输入它们并且输入复杂的风格不方便,这里是附加信息:

  1. 匹配公式用于查询原始工作表中的目标产品编号的位置(上图中的工作表1);
  2. 在找到目标产品编号的位置后,通过偏移公式提取您想要的信息。
  3. 以下是具体流程:

    表1表示原始信息,表2表示目标信息。我们要做的是通过产品将表1的col D中的信息复制到表格的col D: OFFSET($D$5,MATCH(I6,$D$5:$D$16,0)-1,1,1,1) OFFSET($D$5,MATCH(I7,$D$5:$D$16,0)-1,1,1,1) OFFSET($D$5,MATCH(I8,$D$5:$D$16,0)-1,1,1,1) OFFSET($D$5,MATCH(I9,$D$5:$D$16,0)-1,1,1,1) OFFSET($D$5,MATCH(I10,$D$5:$D$16,0)-1,1,1,1)

    或者您可以直接参考输出:

    enter image description here

    有关这两个公式的更多信息,您可以参考谷歌的Excel帮助。