6

我在 Excel 中有两个不同的工作表,在所有第 1 行单元格中具有相同的标题(a1 = id,b1 = 名称,c1 = 价格)。我的问题是,有没有办法将数据(如名称)从一个工作表导入另一个工作表中的“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”?

无需应对和粘贴当然谢谢

4

2 回答 2

12

垂直查找

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

外部参考

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

<Sheetname>!<Cell>

例子:

Table1!A1

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

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

例子:

[MyWorkbook]Table1!A1
于 2011-04-12T12:17:25.047 回答
6

在寻找其他东西时看到了这个线程,我知道它非常旧,但我想加我的 2 美分。

切勿使用 VLOOKUP。它是 excel 中性能最差的公式之一。请改用索引匹配。它甚至可以在不对数据进行排序的情况下工作,除非您在匹配公式的末尾有 -1 或 1(下面将详细解释)

这是带有适当公式的链接。

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 是您要返回的数据。即名称列。
  • Match(A2, 是说匹配 A2,这是您要为其返回名称的 ID。
  • Sheet1!A:A, 表示您要将 A2 与上一张表中的 ID 列匹配
  • ,0)) 指定您想要一个确切的值。0 表示返回与 A2 完全匹配,-1 表示返回大于或等于 A2 的最小值,1 表示返回小于或等于 A2 的最大值。请记住 -1 和 1 必须排序。

有关索引/匹配公式的更多信息

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

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

祝你好运!希望这可以帮助。

于 2015-12-14T21:30:55.827 回答