【问题标题】:Excel, To find a cell based on its value then find another cell starting the search from the previously found cell positionExcel,要根据其值查找一个单元格,然后从先前找到的单元格位置开始搜索另一个单元格
【发布时间】:2018-06-02 22:37:05
【问题描述】:

我有一个巨大的 Excel 表,我需要从中提取一些数据...

为了简化我想要做的事情,我将提供一个简单的例子......

现在请允许我解释一下这是什么以及我想要实现的目标......

在图像中,左侧的第一个表格包含以下内容:

B1/B2/B3 代表 1、2 和 3 号楼 每栋楼共3层,F1/F2/F3 每个楼层都有 3 个不同的任务正在进行中,T1/T2/T3 每个任务前面都有两个值V1/V2,分别是任务的计划进度和实际进度。

在右表中,我想从左表中提取所有建筑物和所有楼层的任务 1 (T1) 的所有值...

首先想到的是通过将右表上的每个单元格与其左表上的对应对象链接来进行手动提取,但是,对于数百座建筑物、第 20 层或第 30 层以及第 10 个任务,这种手动提取似乎需要一个月工作...

另一种方法是通过查找每个任务并将其数据提取到新表来自动执行此操作,但是这里有一个大问题...

每个相似的任务都命名相同,因此在我们的示例中有九个 T1、九个 T2 和九个 T3。楼层也是如此,每层有三个......

唯一独特的是建筑 B1/B2/B3

所以我的问题是,(解释我的想法):

有没有办法在我们的示例 B2(即 Building 2)中运行搜索,一旦找到它,它就会从该位置 (A14) 开始另一次搜索,并向下寻找“第一次出现” F2(即 2 楼)(因此它也没有找到 3 号楼的 F2),一旦找到它,它就会从这个 B2/F2 位置 (A19) 开始新的搜索,然后向下寻找“第一次出现” T1(这是任务 1),然后当它被发现时,它会提取它前面的数字(假设是第二个值 V2 下的那个)并将其放在右表中,即 V2 下的任务 1 表(T1) F2前面的B2。

如何实现这一点?在我们的示例中,M5 中的公式或应该是什么来完成这项工作?如果以某种方式甚至可能!

提前感谢您的帮助, 最好的问候。

【问题讨论】:

    标签: excel


    【解决方案1】:

    M5 的公式将是(使用 ctrl+shift+enter 作为数组公式输入):

    =INDEX($B:$C,MATCH($I$1,IF(ROW($A:$A)>MATCH($I5,IF(ROW($A:$A)>MATCH(IF(M$2="",L$2,M$2),$A:$A,0),$A:$A),0),$A:$A),0),MATCH(M$3,$B$1:$C$1,0))
    

    可以将其复制以填充表格的其余部分。

    编辑您可以通过将其限制在特定范围而不是整列来加快速度:

    =INDEX($B$1:$C$39,MATCH($I$1,IF(ROW($A$1:$A$39)>MATCH($I5,IF(ROW($A$1:$A$39)>MATCH(IF(M$2="",L$2,M$2),$A$1:$A$39,0),$A$1:$A$39),0),$A$1:$A$39),0),MATCH(M$3,$B$1:$C$1,0))
    

    EDIT2: 嵌套MATCH 公式的简要说明:从第三个MATCHMATCH(IF(M$2="",L$2,M$2),$A:$A,0) 开始。这会在 A 列中找到包含“B2”(14) 的行,因此公式变为。

    =INDEX($B:$C,MATCH($I$1,IF(ROW($A:$A)>MATCH($I5,IF(ROW($A:$A)>14,$A:$A),0),$A:$A),0),MATCH(M$3,$B$1:$C$1,0))
    

    “14”用于第二个IF 的比较,它将以数组的形式返回A 列中的所有值,但前14 行将是数组中的FALSE。然后第二个MATCH 可以在该数组 (19) 中找到“F2”的第一个实例。现在的公式是:

    =INDEX($B:$C,MATCH($I$1,IF(ROW($A:$A)>19,$A:$A),0),MATCH(M$3,$B$1:$C$1,0))
    

    重复与之前相同的过程,在第 19 行之后获取“T1”的第一个实例的行。这是馈送到INDEX 的行。最后一个MATCH 给出INDEX 的列。

    【讨论】:

    • 太棒了!先生,您是个巫师。这正是我想要的,你无法想象我多么感谢你的帮助。如果可以分解正在发生的事情,那么我可以完全理解它是如何工作的,这也将非常感激。非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多