Excel 如何从另一个单元格中查找 table 和 return 中的值

Excel how to look for value in table and return value from another cell

我在 excel 中遇到问题,我无法将其设置为 return 特定值。

我有一个 table 这样的数据

Week     N1 N2  N3
w0  6   15  24
w1  5   8   9
w2  3   8   17
w3  20  23  31
w4  13  21  23
w5  6   12  15
w6  2   5   20
w7  10  20  21

N1 N2 和 N3 中的数字可以更改并且是随机的。

我需要做的是查找 table 中的任意数字和 return 周列中的值。

例如,如果我正在寻找数字 20,它会 return w6.

我尝试过各种 vlookups、Hlookups、Index 和 Match 变体,但似乎无法让这个相当简单的东西发挥作用。

在我爆炸之前,任何人都可以帮助我。

试试这个:

= INDEX($A:$A,MATCH(1,MMULT(($B:$D=20)+0,{1;1;1}),0))

编辑 稍微好一点的公式:

= INDEX($A:$A,MATCH(TRUE,MMULT(($B:$D=20)+0,{1;1;1})>0,0))

它 returns 在 table 中找到匹配项的第一个 Week

显然只需将上面的 20 替换为您要查找的任何值即可。

请参阅下面的示例。


编辑

更一般地说,您可以将其动态化,而不是将 {1;1;1} 硬编码到公式中,例如

= INDEX($A:$A,MATCH(1,MMULT(($B:$D=20)+0,TRANSPOSE((COLUMN($B:$D)>0)+0)),0))

此外,如果您想从左到右而不是从上到下搜索 table,请执行以下操作:

= INDEX($A:$A,MATCH(1,MMULT(TRANSPOSE((ROW($A:$A)>0)+0),($B:$D=20)+0),0))

注意,这两个现在都是数组公式(必须用Ctrl+Shift+Enter[输入=49=] 而不是 输入 .

另一种方法,

=index(A:A, iferror(match(G5, B:B, 0), iferror(match(G5, C:C, 0), match(G5, D:D, 0))))