【问题标题】:How to Index/Match to Pull Data from dependent Array如何索引/匹配以从依赖数组中提取数据
【发布时间】: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


    【解决方案1】:

    如果你的数组中的值都是数字,你可以使用:

    R2:  =LOOKUP(9.9+307,INDEX($B:$K,0,MATCH(S2,$B$1:$K$1,0)),$A:$A)
    

    如果值可能是数字或字母,请尝试:

    R2:  =LOOKUP(2,1/LEN(INDEX($B:$K,0,MATCH(S2,$B$1:$K$1,0))),$A:$A)
    

    在每种情况下,公式都将匹配特定 X 标记列中的最后一个条目。

    【讨论】:

    • 感谢您的帮助!这正是我想要的。
    猜你喜欢
    • 2023-03-13
    • 2020-12-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多