Excel:根据工作表1中的数据创建自定义工作表2

时间:2013-07-07 22:14:01

标签: excel excel-vba excel-formula vba

我在电子表格中有两张纸。每个工作表都有一个具有共同值的第一列(但是它们的排序方式不同,并且它们并非在每个工作表中都存在)。

我正在尝试做的,如果可能的话,在表2中放置一个公式,其中,如果第1列是表1的匹配,则将表1中同一行中某些列的选择性数据复制到某个表2中的列。

示例:

工作表1有一个标题设置和样本数据行,如下所示:

标题|星期几|首先|最后

主管|星期三|迈克|琼斯

工作表2有一个标题设置和样本数据行,如下所示:

标题|姓氏|工作日

主管| (空单元格)| (空单元格)

在运行我正在寻找的神秘公式后,放置在上面的2个空单元格中,表格2应与表格1中的Supervisor键匹配,并复制我在每列中指定的数据,例如:

标题|姓氏|工作日

主管|琼斯|星期三

(在这种情况下,我告诉它将“星期几”列映射到工作日,并将“最后”列映射到“姓氏”)。

我希望这很容易/可能???帮助???

2 个答案:

答案 0 :(得分:0)

VBA不是必需的。您可以使用简单的VLOOKUP:

=VLOOKUP(cell to look-up, range where you want to look up the values (first column *must* contain the keys to look-up) including all columns that you want to retrieve, the position of the column to be retrieved relative to the first column specified in argument 2, 0 (specifies you want an exact match))

例如:

=VLOOKUP(A1, Sheet1!$A$1:$D$150, 2, 0) ' Retrieves the 2nd column matching criteria in A1

但请注意,您需要您的钥匙是唯一的。基于标题的匹配信息似乎有点奇怪,因为可能会有多个人被分配到某个角色。例如,可能有超过1个主管。

答案 1 :(得分:0)

使用INDEX和MATCH(优于VLOOKUP)。

我建议重命名标题,使它们在两张图纸上都匹配。

表1应为:

标题|平日|名字|姓

在表2中,单元格B2键入

=INDEX(Sheet1!$A:$D,match($A2,Sheet1!$A:$A,0),match(B$2,Sheet1!$1:$1,0))

您也可以将它拖放到C列中,因为您正在使用两个MATCH函数并且单元格已正确锚定,因此它将起作用。