使用一个公式从两个不同大小的范围生成两列

问题描述 投票:0回答:1

在 Google Sheets 中,我有一系列测试用例,每个测试用例排列为三列一行:一个 ID、一个标题和一系列步骤。

我需要将步骤分成一列中的多个单元格,同时将 ID 保留在每个测试用例的第一行旁边。

我可以使用两个相邻列中的单独公式来完成此操作。 (A 列包含 ID,C 包含步骤,H 包含分成单独行的步骤,G 包含与 H 对齐的 ID。)

=IF(ROW()=1, A1,
IF(REGEXMATCH(H1, "^-\s"), INDIRECT("A"&(COUNTIF(INDIRECT("G1:G"&ROW()-1), "Q-*")+1)),
""
))
=TOCOL(ARRAYFORMULA(SPLIT(C1:C3, "
- ", false)), 1, false)

上面的结果是这样的:

但我认为用一个公式就可以做到这一点。如何?我不希望每个步骤旁边都有 ID,只需要每个测试用例中的第一个步骤。每个测试用例可以有不同数量的步骤,因此不可能在每个 ID 之后插入 X 个空白行。

这是一个测试电子表格

google-sheets-formula
1个回答
0
投票

您可以尝试:

=reduce(tocol(,1),A1:index(A:A,match(,0/(A:A<>""))),lambda(a,c,iferror(vstack(a,hstack(c,tocol(split(offset(c,,2),char(10))))))))

© www.soinside.com 2019 - 2024. All rights reserved.