Excel 公式从网格返回值

Excel 公式从网格返回值

我有一些类似这样的数据

A B C D E F G
B C D E F G A
C D E F G A B
D E F G A B C 
E F G A B C D
F G A B C D E 
G A B C D E F 

另外我还有一段数据是这样的:

A 
B 

当列标题为底部值时,我需要查找顶部值所在行的行标题。例如,在此示例中,我将查找第一行以找到B,然后查找列直到找到A,然后查找行标题以返回G

 A  (B) C D E F G
 B   C  D E F G A
 C   D  E F G A B
 D   E  F G A B C 
 E   F  G A B C D
 F   G  A B C D E 
(G) (A) B C D E F 

我尝试过使用HLOOKUP、、等,但是当我需要为整个列提供一个数组时INDEXMATCH我总是遇到障碍。

下面是一个导致我出现错误的语法示例:

=CONCAT(address(8,1):address(12,1))

我无法:在两个手机地址之间拥有。

有任何想法吗?

答案1

我确信有更优雅的方法可以做到这一点,但这是一个快速而肮脏的解决方案。

在此处输入图片描述

我将您的网格固定在任意位置(B2:H8)。J2 和 J3 是您的查找值,结果在 J4 中。由于公式很长,L 列中的内容是答案的组成部分,用于解释。

第一块拼图在 L3,找到B最上面一行的目标:

=MATCH(J3,B2:H2,0)

它在数组的第 2 列中找到目标B,并在下一步中使用该目标在该列中查找 A。L2 包含:

=MATCH(J2,OFFSET(B2,0,L3-1,7,1),0)

OFFSET 固定在数组的左上角 (B2)。B在中找到的列是数组的第二列,但与第一列的偏移量为 1,因此-1(我喜欢在句子中使用“因此”这个词)。OFFSET 允许您使用高度和宽度参数指定范围。7在本例中是数组高度。

AMATCH在数组该列第 7 行中找到目标。

现在你只需要转到数组第一列的那一行:

=INDEX(B2:B8,L2,0)

在那里,你可以找到答案:G

您可以用成分公式替代成分,以获得一个独立的公式:

=INDEX(B2:B8,MATCH(J2,OFFSET(B2,0,MATCH(J3,B2:H2,0)-1,7,1),0),0)

相关内容