Excel 每十行递增一个计数器

Excel 每十行递增一个计数器,excel,count,runtime,Excel,Count,Runtime,我有一个超过50000行的Excel电子表格,希望添加一个列,通过为向下的每十行分配一个递增的数字,将数据有效地分组为十组。澄清一下,这就是我的目的: Col A Col B Decile 1 * * 1 2 * * 1 3 * * 1 4 * * 1 5 * * 1 6 * *

我有一个超过50000行的Excel电子表格,希望添加一个列,通过为向下的每十行分配一个递增的数字,将数据有效地分组为十组。澄清一下,这就是我的目的:

   Col A    Col B    Decile
 1    *        *        1
 2    *        *        1
 3    *        *        1
 4    *        *        1
 5    *        *        1
 6    *        *        1
 7    *        *        1
 8    *        *        1
 9    *        *        1
 10   *        *        1
 11   *        *        2
 12   *        *        2
 13   *        *        2
 14   *        *        2
...
199   *        *        19
200   *        *        19
201   *        *        20
...
我目前的做法是将此函数插入到十进制列的第一个条目中,并将其复制到整个列:

=INT(COUNTA($A1:A$2)/10) + 1
它对从A2到当前行的所有行进行计数,除以10,再除以一个整数,然后从1开始向索引添加1

我遇到的问题是,对于超过50000行的数据,Excel需要花费大量的时间来计算,因为对于每一行,它必须计算它前面的所有行,然后计算一个数字(如果我正确地记住了我的算法讲座,则给它一个O(n^2)运行时间)。必须有一种更有效的方法来做到这一点,而我缺乏Excel专业知识,这使我无法考虑另一种解决方案


您将如何解决此问题?

这可能会带来一些性能提升:

=INT(ROW($A1)/10) + 1
但是,如果不需要这些值是动态的。填写完前10k左右后,可以复制整个列,然后粘贴为值。这将消除excel进行连续计算的需要

您还可以在功能区“计算选项”下的“公式”选项卡中将计算模式更改为手动。然后,展开公式后,点击计算表。这样,它不会在每次将公式部分拖动到新单元格时持续计算