我有一些类似这样的数据
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
、、等,但是当我需要为整个列提供一个数组时INDEX
,MATCH
我总是遇到障碍。
下面是一个导致我出现错误的语法示例:
=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
在本例中是数组高度。
A
MATCH在数组该列第 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)