vba - 如果不同工作表上的值匹配,则将数据从第一工作表复制到其他工作表

标签 vba excel excel-formula

我有 Sheet1Sheet2Sheet3Sheet4

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

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 列 E 中输入值 150,则公式应在 Sheet1 列 A 中扫描该值,并找到其值如果在第 2 行中匹配,则应将 B 列的数据(即 70)复制到 Sheet2 列 N 并类似地复制 Sheet1 列 C (即 20)到 Sheet2 列 O

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

最佳答案

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

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

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

关于vba - 如果不同工作表上的值匹配,则将数据从第一工作表复制到其他工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37394778/

相关文章:

sql - Microsoft Access 插入语句从 Excel 中选择数据 --- 字段是混合整数和文本

Excel:哪一行的和等于一个数字?

excel - 从同一文本字符串中提取引号中的多个值

vba - 使用 VBA 将值作为文本输入到单元格,即使值以 =? 开头

forms - 在 VBA (Excel 2007) 中关闭表单时执行代码

excel - 根据单元格值隐藏行非常慢

vba - 在 VBA 中实现接口(interface)的类模块中的其他方法

arrays - 用户窗体变量范围 : transfer 2D array values from userform2 to userform1

java - 如何在java(Excel)中写入特定列并读取特定列?

excel - 从 Excel 单元格中提取固定长度的数字