在ROW中查找特定值并在水平相邻的单元格中找到该值

我需要在Sheet1!B1中查找一个值,并在Sheet2(Sheet2!E2:DD2)的单个行范围内找到它。找到后,我需要获取相同单行范围(Sheet2!E2:DD2)中下一个单元格的值,并在Sheet1!B2中返回它。

然后,我希望能够再次对下一行执行相同的操作。在Sheet1!B1中查找值,并在Sheet2(Sheet2!E3:DD3)的下一个单行范围内找到它。找到后,我需要获取相同单行范围(Sheet2!E3:DD3)中下一个单元格的值,并将其返回到单元格Sheet1!B3中。

&然后我将在Sheet1!B列下重复此公式,再查找3000左右行。

需要注意的重要一点是Sheet1!B1中的值不会出现在Sheet2每一行的同一列中(例如,在第2行中它可能会出现在Sheet2!P2中,而在第3行中可能会出现出现在Sheet2!BT3


方案和预期结果的示例:

Sheet1!B1 = "Hello"
Sheet2!P2 = "Hello"
Sheet2!Q2 = "Bonjour"
Sheet2!BT3 = "Hello"
Sheet2!BU3 = "Aloha"

Desired Result in Sheet1!B2 = "Bonjour"
Desired Result in Sheet1!B3 = "Aloha"

您可能会看到,Sheet1!B2中的Vlookup(例如=VLOOKUP(Sheet1!B1,Sheet2!E2:DD2,2,false))将无法工作,因为在查找范围的第一列中未找到查找值(Sheet1!B1)( Sheet2!E2:DD2),而是在范围中间的某个位置找到它。因此,vlookup只会返回#N/A

理想情况下,我正在寻找一种公式解决方案,而不是VBA。

deipfqu850726 回答:在ROW中查找特定值并在水平相邻的单元格中找到该值

您可以使用INDEX和MATCH。

Match会找到您要搜索的内容的位置。
在这种情况下,我们在E2:DD2中搜索“ Hello”,因为在P2中找到了“ Hello”,因此返回值为12(右侧12列)。
但是我们想要下一个相邻的单元格,所以我们添加1。

现在实际上要在右侧的13列中获取值,我们使用INDEX。
索引将创建一个从E2到DD2的所有项目的列表,该列表将为11空,然后是“ Hello”,然后是“ Bonjour”。
索引参数是列表或矩阵,行,列。
列表为E2:DD2,行是您要移动(上或下)的行数,列是您要移动的列数(我们要13)。

因此将两个功能结合起来将是:

=INDEX(E3:DD3,MATCH($B$1,E3:DD3,0)+1)

这意味着我们为列表建立索引,然后在同一行中返回,但是在该行中找到“ Hello” +1。

enter image description here

编辑:我没有注意到它在两个不同的页面上。但是使用相同的公式,只是需要在公式中添加表格。

=INDEX(Sheet2!E2:DD2,Sheet2!E2:DD2,0)+1)
本文链接:https://www.f2er.com/3009534.html

大家都在问