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

Excel - get range of data between two rows

我有以下模式的数据:

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

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

可能有多种方法可以做到这一点,但如果您更愿意在没有 VBA 的情况下做到这一点,您可以使用:

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

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

注意是通过CtrlShiftEnter

输入的数组公式

往下拉....

你没有说你想用这个结果做什么。

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

下面的公式将 return 这些值作为数组。例如使用您的数据,公式将 return {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 错误。

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