【发布时间】:2019-12-01 20:42:08
【问题描述】:
我想知道如何使用索引/匹配的组合通过引用多个条件将数据从一列拉到另一列。从所附的图像中,R 列应根据其在 S 列中的相应引用使用 A 列中的值自动填充(使用公式)。
列 S 将与第 1 行匹配以在数组 B2:K11 中找到其列位置。然后,在匹配的列中,excel 应该找到包含等于或大于 0(或非空白)的任何值的行号。当它找到具有值的行时,它会将值从 A 列拉到 R 列。
例如,在 R2 中,它会查看 S2 并看到它需要 X1 的位置。它将进入数组并在 B1 中找到 X1。由于“10”在那里,它将沿着列向下并在 B3 中找到一个值。它会将 A3 拉入 R2。
我试图在不使用 VBA 的情况下做到这一点,并且尽可能干净和高效(即,如果可能没有帮助列,并且需要更少的处理能力)。由于无法上传实际文件,我提供了我正在尝试完成的示例图像。
我尝试了多种索引/匹配组合,但无法将数组修改为不固定到特定列。我也尝试过 ADDRESS() 来创建自定义数组,但这不起作用,尝试的公式如下所示:
在 R2 中查找列位置:=MATCH(S2,A1:K1)
在 B2:B11(单列)中查找行号:
{=MATCH(TRUE,ISNUMBER(B2:B11),0}
{=MATCH(TRUE,B2:B11>=0,0)}
=MATCH((LOOKUP(2,1/(B$2:B$11<>""),B$2:B$11)),B$2:B$11,0)
我需要将这些组合起来,但是要查看的列的数组应该指向匹配的列。
到索引列 A:
=INDEX($A:$A,ROW,0)
总体:
=INDEX(A:A,(=MATCH((LOOKUP(2,1/(COLUMN NUMBER MATCHED<>""),COLUMN NUMBER MATCHED)),COLUMN NUMBER MATCHED,0)),0)
【问题讨论】:
标签: excel indexing excel-formula match