如何将数据从一个工作表导入另一个工作表

时间:2011-04-12 12:13:00

标签: excel worksheet-function vlookup

我在excel中有两个不同的工作表,在所有第1行单元格中都有相同的标题(a1 = id,b1 = name,c1 = price)。我的问题是,有没有办法将数据(如名称)从1个工作表导入到另一个工作表中“id”相同的另一个工作表。

eg.
sheet 1                             sheet2
ID      Name       Price            ID        Name        Price
xyz     Bag        20               abc                     15
abc     jacket     15               xyz                     20

那么有没有办法在表格1中将“名称”添加到表格2中的“名称”,其中表格1中的“ID”=表2中的“ID”?

当然没有应对和粘贴 感谢

2 个答案:

答案 0 :(得分:9)

<强> VLOOKUP

您可以使用简单的VLOOKUP公式来完成。我将数据放在同一张表中,但您也可以引用不同的工作表。对于价格列,只需将最后一个值从2更改为3,因为您正在引用矩阵“A2:C4”的第三列。 VLOOKUP example

外部参考

要引用相同工作簿的单元格,请使用以下模式:

<Sheetname>!<Cell>

示例:

Table1!A1

要引用不同工作簿的单元格,请使用以下模式:

[<Workbook_name>]<Sheetname>!<Cell>

示例:

[MyWorkbook]Table1!A1

答案 1 :(得分:6)

在寻找其他东西时看到这个帖子,我知道它已经超级老了,但我想加上我的2美分。

永远不要使用VLOOKUP。它是excel中性能最差的公式之一。改为使用索引匹配。它甚至可以在没有排序数据的情况下工作,除非你在匹配公式的末尾有一个-1或1(在下面有更多解释)

这是一个link,其中包含适当的公式。

Sheet 2公式为:= IF(A2 =“”,“”,INDEX(Sheet1!B:B,MATCH($ A2,Sheet1!$ A:$ A,0)))

  • IF(A2 =“”,“”表示如果A2为空白,则返回空白值
  • INDEX(Sheet1!B:B,表示INDEX B:B,其中B:B是您要返回的数据.IE是名称列。
  • 匹配(A2,表示匹配A2,即您要为其返回名称的ID。
  • Sheet1!A:A,表示您要将A2与上一页中的ID列匹配
  • ,0))指定您想要一个确切的值。 0表示返回与A2完全匹配,-1表示返回最大值大于或等于A2,1表示返回小于或等于A2的最大值。请记住-1和1必须排序。

有关Index/Match公式

的更多信息

其他有趣的事实:$表示公式中的绝对值。因此,如果在向下填充公式时指定$ B $ 1,则保持相同的值。如果超过$ B1,则公式中的B保持不变,但如果填写,则1会随着行数的增加而增加。同样,如果您使用B $ 1,则向右填充将增加B,但保留第1行的引用。

我还在第二部分中包括使用间接。间接的作用是允许您使用公式中另一个单元格的文本。因为我创建了一个命名范围sheet1!A:A = ID,sheet1!B:B = Name,而sheet1!C:C = Price,我可以使用列名具有完全相同的公式,但它使用列标题更改搜索条件。

祝你好运!希望这会有所帮助。