如果不同工作表上的值匹配,则将数据从一张工作表复制到另一张工作表

Posted

技术标签:

【中文标题】如果不同工作表上的值匹配,则将数据从一张工作表复制到另一张工作表【英文标题】:If value match on different sheet, then copy data from the sheet one to other sheets 【发布时间】:2016-09-20 13:22:56 【问题描述】:

我有Sheet1Sheet2Sheet3Sheet4

我想要公式,即如果我在 E 列中的 Sheet2、Sheet3、Sheet4 中输入任何值,那么它应该与 Sheet1A 匹配该值,如果值匹配,则数据值为sheet1 应复制到所有其他工作表。

EG:- 在 sheet1 我有下面提到的数据。

(A Column    /         B Column    /    C Column)
(Product Value   /      Cost       /    Packing)
(200          /          100       /       50)
(150          /          70        /       20)
(300          /          120       /       50)
(500          /          300       /       100)

为了说明,如果在 Sheet2, Column E 中输入一个值 150,那么公式应该在 Sheet1, Column A 中扫描该值,并在第二行找到它的匹配项,然后它应该复制列B(即70)的数据到Sheet2列N,同样将Sheet1列C(即20)复制到Sheet2列O

如果我在 Sheet2、Sheet3、Sheet4、Sheet5 中输入值,则公式应仅从 Sheet1 扫描值并将数据复制到前一段所述的相应位置。

【问题讨论】:

vlookup? index/match?不是自动的,但您没有显示任何代码。 【参考方案1】:

这对于 vlookup 来说相对简单直接。 我假设要查找的值在单元格 E2 中(无论工作表如何)

对 Sheet2、3、4、5 等上的 N2 列使用以下公式,然后根据需要向下拖动到多少行:

=VLOOKUP(E2,Sheet1!$A$2:$C$5,2,FALSE)

对 Sheet2、3、4、5 等上的 O2 列使用以下公式,然后根据需要向下拖动到多少行:

=VLOOKUP(E2,Sheet1!$A$2:$C$5,3,FALSE)

调整“$A$2:$C$5”公式部分以匹配 Sheet1 表中的适当范围。或者将“5”替换为Sheet1中产品数据的行数。您也可以使用“Sheet1!A:C”来搜索所有行。

此公式不会将数据“复制”到其他工作表,它只是根据 E 列中的查找值显示值。

VLOOKUP 的第一个参数是查找值(“产品值”)。为此,我们要引用 E 列中的单元格。 (我使用单元格 E2,因为我假设您在 E1 中有一个列标题)。

VLOOKUP 的第二个参数是 Table 数组 (Sheet1!$A$2:$C$5)。这是我们要从 E 列中查找值的地方。请记住,vlookup 仅在第一列中搜索条件值。美元符号 ($) 确保查找表引用保持静态并且在您尝试自动填充列中所有行的公式时不会更改。

VLOOKUP 的第三个参数是列索引。当它在第一列中找到匹配项时,这个整数将告诉 vlookup 返回哪一列。 1 返回第 1 列,2 返回第 2 列,依此类推。

“FALSE”参数告诉公式只查找完全匹配。如果将其设置为“TRUE”并且您的列表未按升序排序,您将在 vlookup 试图找到最接近的匹配而不是精确匹配时遇到麻烦。

【讨论】:

以上是关于如果不同工作表上的值匹配,则将数据从一张工作表复制到另一张工作表的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA 类型不匹配错误

Excel 一张工作表变动后,怎么自动更新另一张表中的数据

在 VBA 中,我如何创建一个匹配 2 张工作表中的日期并将数据作为值粘贴到匹配日期的代码?不能为此使用 vlookup

在工作簿中查找所有匹配项并将结果偏移到另一张工作表中(VBA)

从一张纸复制数据并将其粘贴到另一张纸上

如何在一张工作表上运行 2 个 Private Sub Worksheet_Change?