n行增加2,一次增加4,当从一张纸到另一张时,重复

感谢您花时间看这个问题。

我正在寻找一个方程式,可以很容易地从表格1(第一张图片)中得到两个空白单元格之间的值为四个值,然后有4个空白单元格,然后其他四个值的数值。 我不知道我是否有意义,但希望我所附的图片有帮助。 请注意前4 之间的2行空白行 (值2-11),行16和25之间相同。还要注意两组值之间的4个空白行。

对于我来说,这是重复的700个值,相同的设置2空白行4组值,然后4空白行,然后4组值2空白行。 我相信有一个更简单的方法来做到这一点。

我正在尝试使用等式重新创buildSheet 1中的Sheet 2。 这可能吗?

提前道歉,英语不是我的第一语言。

表1 工作表2

如果数字将在B2中开始,并且间隔和偏移错开是静态的,

=INDEX(B:B, 2+(ROW(1:1)-1)*3+INT((ROW(1:1)-1)/4)*2) 

如果第一个数字在S6那么,

 =INDEX(S:S, 6+(ROW(1:1)-1)*3+INT((ROW(1:1)-1)/4)*2) 

在这里输入图像说明

把这个放在D2中:

 =IFERROR(INDEX(Sheet1!B:B,AGGREGATE(15,6,ROW(Sheet1!$B$2:INDEX(Sheet1!B:B,MATCH("ZZZ",Sheet1!A:A)))/(Sheet1!$B$2:INDEX(Sheet1!B:B,MATCH("ZZZ",Sheet1!A:A))<>""),ROW(1:1))),"") 

并抄下来,直到你得到空白。

这将返回数字,以便他们出现在表1上。

Sheet1!$B$2:INDEX(Sheet1!B:B,MATCH("ZZZ",Sheet1!A:A))设置数据集边界。 这是一个数组types的公式,它需要引用最小的数据集。 这部分find列A中的最后一个单元格,并将其设置为数据集的范围,因此我们不做不必要的迭代。

MATCH部分将返回最后一行有文本,如果列A有数字,那么我们需要将"ZZZ"更改为1E+99以获得列A中最后一行的数字。

AGGREGATE像一个小的工作,它会创build一个行号和错误的数组。 它将返回ROW数字(Sheet1!$B$2:INDEX(Sheet1!B:B,MATCH("ZZZ",Sheet1!A:A))<>"")返回true。 和一个错误,它返回FALSE。

Aggregate中的第二个标准6告诉它忽略错误,所以它只查看返回的行号。

ROW(1:1)是一个计数器。 当公式被拖下来时,它将迭代到2然后3,依此类推。 这告诉聚合,你想要第一然后第二然后第三等等。

所选的行号然后被传递给INDEX并返回正确的值。

在这里输入图像说明


如果你的数字是按顺序(从你的例子中的最小到最大),或者你想要输出(从小到大),那么你可以在D2中使用这个简单的公式:

 =IFERROR(SMALL(Sheet1!B:B,ROW(1:1)),"") 

然后复制下来,直到你得到空白。

以下是您可能使用的另一个公式。

=INDIRECT(ADDRESS((INT((ROW()-ROW($A$2))/4)*14+ROW(A$2))+(MOD(ROW()-ROW($A$2),4)*3),COLUMN($A$2),1,1,"Sheet1"))

您可以将其粘贴到您想要结果的第一个单元格,然后复制下来。

请注意,$ A $ 2是所有计数开始的单元格。 如果您的数据从A3开始,则可以相应地更改引用。 进一步注意, ROW($A$2)长为2 。 我select了这个语法来使你能够识别它的含义。

另一方面, COLUMN($A$2)只是将A列标识为要解除数据的来源。 这个公式中的第2行是不重要的。 这是重要的。 然而, COLUMN($A$2)只有1 ,意思是1列,意思是A.一旦你在公式中取得了方位,你可以用1代替COLUMN($A$2)