Excel-获取两行之间的数据范围

时间:2019-05-03 14:45:31

标签: excel excel-formula excel-2010

我有以下模式的数据:

enter image description here

我想要一个公式来获取Content Start和Content End之间的数据。开始和结束之间的内容数量不仅限于4,而且可以更改。

3 个答案:

答案 0 :(得分:2)

您没有说出要对此结果做什么。

我假设您可以对数据所在的列进行编码。

以下公式将这些值作为数组返回。例如根据您的数据,公式将返回{1;2;3;4}

值可以是数字或文本。

如何处理这些值取决于您。

=INDEX($A:$A,N(IF(1,ROW(INDEX($A:$A,MATCH("Content Start",$A:$A,0)+1,1):INDEX($A:$A,MATCH("Content End",$A:$A,0)-1,1)))))

编辑:这是一个使用该信息创建迷你图的示例。在此示例中,以上公式已包装在TRANSPOSE中,并在C1:I1中作为数组公式输入。已在B1中输入迷你图。与大多数图表一样,Excel忽略了#N/A错误。

enter image description here

下面是一个示例,其中的迷你图位于A1中,而转置的数组位于工作表上的其他位置,而不在视图中:

enter image description here

答案 1 :(得分:1)

With Worksheets("Your Sheet").Range("A:A")
    Set c = .Find("Content Start", LookIn:=xlValues)
    Set d = .Find("Content End", LookIn:=xlValues)
    ActiveSheet.Range(Cells(c.Row + 1, c.Column), Cells(d.Row - 1, c.Column)).Select
End With

答案 2 :(得分:1)

执行此操作的方法可能多种多样,但是如果您更喜欢在不使用VBA的情况下执行此操作,则可以使用:

enter image description here

B1中使用的公式(虽然有点冗长):

{=INDEX($A$1:$A$10,SMALL((ROW($A$1:$A$10)>MATCH("Content Start",$A$1:$A$10,0))*(ROW($A$1:$A$10)<MATCH("Content End",$A$1:$A$10,0))*ROW($A$1:$A$10),SUM((ROW($A$1:$A$10)>MATCH("Content Start",$A$1:$A$10,0))*(ROW($A$1:$A$10)<MATCH("Content End",$A$1:$A$10,0)))+ROW(A3)))}

请注意,这是通过 Ctrl Shift Enter

输入的数组公式

向下拖动......