我正在寻找一个方程式,可以很容易地从Sheet 1(第一张图片)获取数值,其中两个值之间有2个空白单元格,然后是4个空白单元格,然后是其他4个值。我不确定我是否有意义,但希望我附上的图片有帮助。 注意前两行之间的 2个空白行值(行2-11),行16和25之间相同。 另请注意两组值之间的4个空行。
对我来说,这是重复700个值,同样设置4个值的2个空白行,然后是4个空白行,然后是4个具有2个空白行的值。我确信有一种更简单的方法可以做到这一点。
我尝试使用等式从Sheet 1重新创建Sheet 2。这可能吗?
提前道歉,英语不是我的第一语言。
答案 0 :(得分:4)
如果数字将从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)
答案 1 :(得分:2)
把它放在D2:
StatusComponent
然后抄下来直到你得到空白。
这将返回数字,以便它们出现在第1页上。
=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))),"")
设置数据集边界。这是一个数组类型公式,它需要引用尽可能小的数据集。此部分查找A列中的最后一个单元格,并将其设置为数据集的范围,以便我们不进行不必要的迭代。
MATCH部分将返回其中包含文本的最后一行,如果列A包含数字,则我们需要将Sheet1!$B$2:INDEX(Sheet1!B:B,MATCH("ZZZ",Sheet1!A:A))
更改为"ZZZ"
以获取A列中的最后一行,并带有数字
AGGREGATE工作得很小,因为它会创建一个行数和错误数组。它将返回1E+99
返回true的ROW Numbers。并且返回FALSE的错误。
Aggregate中的第二个标准(Sheet1!$B$2:INDEX(Sheet1!B:B,MATCH("ZZZ",Sheet1!A:A))<>"")
告诉它忽略错误,所以它只查看返回的行号。
6
是一个反击。随着公式被拖下来,它将迭代到2然后3,依此类推。这告诉Aggregate你想要1st,然后是2nd,然后是3,依此类推。
然后将选定的行号传递给INDEX并返回正确的值。
如果您的数字是有序的(从您的示例中最小到最大)或者您想要按顺序输出(从最小到最大),那么您可以在D2中使用这个简单的等式:
ROW(1:1)
然后复制,直到你得到空白。
答案 2 :(得分: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
来说很长。我选择这种语法使您能够识别其含义。
COLUMN($A$2)
只是将A列标识为要提升的数据的来源。该公式中的第2行无关紧要。这是重要的A.但是,COLUMN($A$2)
仅适用于1
,意思是第1列,意思是A.一旦您了解公式,就可以将COLUMN($A$2)
替换为1
。< / p>