Excel 每十行递增一个计数器
我有一个超过50000行的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 * *
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进行连续计算的需要
您还可以在功能区“计算选项”下的“公式”选项卡中将计算模式更改为手动。然后,展开公式后,点击计算表。这样,它不会在每次将公式部分拖动到新单元格时持续计算