-1

我有一个很长的列(50000 行),我想选择一个单元格范围(样本)(行数)以应用某些计算。您不必担心计算公式。在这里,我只需要有关如何进行采样的帮助。范围(样本)应根据窗口大小而变化。窗口大小是一个我可以选择的数字。例如,在下面的示例中,我选择了窗口大小为 4。换句话说,我需要有样本,这些样本基于选定的长列的行数。所有样本的大小(行数)将等于窗口大小。但是,每个样本都从主列移动了一个。现在,样本应该在单独的列中,这就是为什么我需要在其所需列中复制每个样本中的选择。为了说明目的,假设以下示例:

test
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10

预期的输出应该是:

main col sample1 sample2 sample3  sample4 sample5 sample6 
 1         1       2         3         4       5     6  
 2         2       3         4         5       6     7  
 3         3       4         5         6       7     8
 4         4       5         6         7       8     9
 5    
 6 
 7 
 8
 9
 10

但是,每个大小为 4 rows 的样本,每个新样本都会从主列移动 1。请注意,我们得到 6 个样本来覆盖主列中的全部行数。基本上应该做的事情:sample1 将从主列的第 1 行到第 4 行。现在,sample2 将是 4 个值,但是,从第 2 行到第 5 行,从主列。sample3 将是 4 个值,从第 3 行到第 6 行,依此类推,直到我们覆盖了主列的整个范围。所以有两个主要过程,选择和复制选择。

我曾尝试使用偏移量和其他逻辑功能......但它没有用。我不想使用宏或 VBA... 是否有任何内置函数来解决问题。?

4

1 回答 1

0

这基本上是范围转置的变体。使用公式:

=INDEX($A:$A,COLUMN()+ROW()-2,1)

然后只需复制到您想要的任何窗口大小。它会自动将主列向下移动一行,每列在它上面。结果如下所示(您负责将公式复制到正确的大小):

结果

奖励,您可以使用以下方法自动化列标题“Sample N”:

="Sample " & COLUMN()-1
于 2013-02-13T02:20:40.160 回答