【问题标题】:Lookup a specific value in a ROW & find the value in the horizontally adjacent cell在 ROW 中查找特定值并在水平相邻单元格中查找值
【发布时间】:2019-11-29 06:46:26
【问题描述】:

我需要在 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 行中,它可能出现在 @987654332 @)


场景示例和预期结果:

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))将不起作用,因为在查找范围 (Sheet2!E2:DD2) 的第一列中找不到查找值 (Sheet1!B1),它而是在范围中间的某个地方找到。所以 vlookup 只会返回 #N/A

理想情况下,我正在寻找一个公式解决方案,如果可能的话,不是 VBA。

【问题讨论】:

  • Sheet2!E2:DD2 & Sheet2!E3:DD3 的内容是什么?

标签: excel excel-formula lookup


【解决方案1】:

您可以使用 INDEX 和 MATCH。

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

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

所以结合这两个功能将是:

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

这意味着我们索引列表,并且我们返回同一行,但我们找到“Hello”的列+1。

编辑:我没有注意到它在两张不同的纸上。但同样的公式适用,只是需要在公式中添加工作表。

=INDEX(Sheet2!E2:DD2,0,MATCH($B$1,Sheet2!E2:DD2,0)+1)

【讨论】:

  • 感谢 Andreas,这个解决方案非常完美!
猜你喜欢
  • 1970-01-01
  • 2021-01-03
  • 2014-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多