一个工作簿,多个工作表(选项卡)
工作表 1 。 A – K
列中的每个单元格中都有数据。
对于任何给定的行,列G, H, I, J, K
中的值直接对应于列B
工作表 2 。 A – P
列中的每个单元格中都有数据。
我想要一个公式,以便:
每当工作表 1 上的列B
中的值与工作表 2 上的列N
中的任何相同值匹配时,
将相应的值从工作表 1 中的列G, H, I, J, K
传递到工作表 2 中的列Q, R, S, T, U
。
答案 0 :(得分:0)
这可以使用INDEX和MATCH完成。
INDEX从数组返回一个值,我们必须提供行和列。 MATCH返回值在数组中的位置。如果数组是列,则将返回行号;如果数组是行,则将返回列号。 说这就是您的sheet1的样子。:
在这种情况下,我们想在工作表2的N列中找到“高兴”,看起来像这样:
“快乐”出现在第10行的N列中。因此,我们要从G3工作表1中检索“测试”,并希望其出现在Q10工作表2中。为此,我们可以使用以下代码:>
=INDEX(Sheet1!$A$1:$K$10,MATCH(Sheet2!$N10,Sheet1!$B$1:$B$10,0),7)
要对此进行细分(关注第1和第3个项目[暂时忽略MATCH部分]):
INDEX(array,row,col)
其中数组是sheet1 A1:P15。在Q列工作表2中,我们需要G列工作表1中的值,因此列号为6(6 ='7',出现在右括号之前)。
但是哪一行?这是MATCH发挥作用的地方:
MATCH(lookup_value, lookup_array, [match_type])
我们希望B栏第1页中出现“ happy”的行,而我们编写的MATCH公式为:
MATCH(Sheet2!$N10,Sheet1!$B$1:$B$10,0)
在这里,我们要查找的值是N10中的“ happy”,所以这就是我们的lookup_value(注意$N10
,N列是绝对的,而row是相对的)。
现在我们要在哪里尝试寻找“快乐”?是的,在工作表1的B列中,所以我们有Sheet1!$B$1:$B$10
(如果要搜索整列,也可以使用Sheet1!$B:$B
)。
最后,我们将match_type设为0,因为0代表精确值。我们想找到确切的短语“ happy”。
将它们放在一起,我们为Q列提供以下代码:
=INDEX(Sheet1!$A$1:$K$10,MATCH(Sheet2!$N10,Sheet1!$B$1:$B$10,0),7)
对于R列,唯一改变的是我们不再需要G列第1页中的值,我们想要H列第1页中的值,因此末尾的7变为8:
=INDEX(Sheet1!$A$1:$K$10,MATCH(Sheet2!$N10,Sheet1!$B$1:$B$10,0),8)
很抱歉,冗长的解释只是想确保您理解代码,以便您可以根据需要对其进行编辑。希望这会有所帮助。