返回特定单元格地址下的 X 个单元格值

返回特定单元格地址下的 X 个单元格值

首先,感谢您的阅读,我将离开这张照片,这就是我当前工作表的样子。

我正在尝试解析 A:A 上的信息,以便将“X/Y”的每个实例(其中 X 和 Y 是分隔符之前和之后的值)转换为列标题,并在其下方获得 X 单元格值。我目前有一列,其中所有结果都经过数据验证以创建下拉列表。

例如,A4 包含原始字符串,然后我将其传递给以下公式:

=INDEX(A:A, SMALL(IF(ISNUMBER(SEARCH("* - *", A:A)), MATCH(ROW(A:A), ROW(A:A)), ""), ROWS(A:A)))

这样我就得到了 C2 上的值。然后 C2 经过以下公式:

=MID(RIGHT(C2,FIND("/",C2)+2),FIND("-",C2)-1,LEN(C2))

我在 F2 上获得值,然后再次通过这个:

=MID(F2, FIND("/",F2)-1,1)

获取 G2 上的值。
(如果你能以某种方式将所有这些合并为 1,我将不胜感激)

现在,我一直在尝试做以下事情,我将通过一个例子来解释。G2 是 2,这意味着我想获取 A4 下的两个单元格值,但我只能获取 A5,而不是 A5 和 A6。

我目前在 Google Sheets 中执行此操作,因为我发现它更容易一些,因为我无法访问 MS Office 365,并且只安装了 2019。

是我目前正在做的,是我想要的最终结果。

答案1

我设法制定了解决我问题的公式。如下所示:

=ArrayFormula(INDEX(INDIRECT(ADDRESS(MATCH(INDEX(C:C,Sheet1!C1),A:A,0)+1,1)):INDIRECT(ADDRESS(MATCH(INDEX(C:C,Sheet1!C1),A:A,0)+INDEX(I:I,Sheet1!C1),1)),ISNUMBER(SEARCH(" · ",INDIRECT(INDEX(F:F,Sheet1!C1))))))

使用MATCH(INDEX(Range,Cell)我能够程序化地改变最外层的范围和位置值,INDEX以便能够在需要时返回自定义范围表。包含Sheet1!C1一个ROW公式,它返回我正在寻找的部分的行位置,它用作返回单元格位置的索引。CFSheet2

最后结果

相关内容