16000人参与“社会保障代扣代缴合同”,每16人1-16行重复编号1、17-32行重复编号2、……。15985-16000行重复编号必须设置为1000。怎么办?
前面说的是我帮朋友解决的真正问题。我称之为数据组重复编号。(大卫亚设,Northern Exposure(美国电视),数据名言)16000行数据,数值从1到1000不等。用粘贴输入数字的方式处理,工作量大,容易出错。在此基础上,我将分享两种方法,在3秒内实现16000行数据自动分组编号。
1
函数法
1.程序
(1)编辑连续迭代编号公式。在储存格A1中输入公式。
=if (mod (row (a1),16)=0,row (a1)/16,int (row (a1)/16) 1)
如下图所示。
注:公式中的所有数字、符号和标点符号都必须以英语输入法状态输入。
(2)快速选择连续重复编号区域。用鼠标单击单元格A1。在excel地址栏中输入A16000。按住“Shift”键,不松开,按“Enter”键。完成上述三个步骤后,可以快速选择需要连续重复编号的区域。如下图所示。
(3)快速填充公式。选择连续重复编号区域后,在“开始”选项卡上单击“填充”选项卡,然后选择“向下”选项完成公式的自动填充.(如果选择了“顺序重复编号”区域)。(单击“填充”选项卡并选择“向下”选项后,公式将自动填充。) (如果选择“下”选项,将自动填充公式。连续重复编号的结果如下图所示。
注:很多朋友习惯用鼠标拖动来填充公式。这里最多编号16,000行,因此不建议使用,因为鼠标拖动需要很长时间来填充。
2.函数解释
公式中总共使用了4个函数。我们先来看看这四个函数的各自作用。
L ROW()函数。ROW()函数返回行中任意单元格所在的行号。例如,ROW(A13)=13,ROW(B13)=13。
使用L INT()函数。舍入函数(例如,INT )=0,INT (2)=2,INT )=3,INT)=-2。也就是说,当x0时,INT (x)=x值的整数部分(不四舍五入);
在X0中,INT (x)=(x值整数部分的绝对值1)乘以-1。
L MOD()函数。查找两个数字相除的馀数,如MOD(1,16)=1,MOD(16,16)=0。如果MOD(x,y)=0,则x是y的整数倍数。(注意:第一个参数是被除数,第二个参数是除数。)。
L IF()函数。IF()函数有三个参数:IF(逻辑判断表达式、结果1、结果2)、逻辑判断表达式为真(TRUE)、IF()函数返回结果1。如果逻辑判断表达式不为真(FALSE: false),IF()函数将返回结果2。
然后理解整个公式的含义。
=IF(
MOD(ROW(A1),16)=0,ROW(A1)/16,INT(ROW(A1)/16)+1)IF第一参数MOD(ROW(A1),16)=0:判断单元格所在行号除以16后的余数是否等于0,也就是行号是否能被16整除。很显然,16、32等能被16整除,余数=0,条件成立;15、17等不能被16整除,余数≠0,条件不成立。
IF第二参数ROW(A1)/16:当第一参数条件成立时,编号等于行号除以16的商。例如:
A16,编号= ROW(A16)/16=16/16=1
A32,编号= ROW(A32)/16=32/16=2
……
IF 第三参数INT(ROW(A1)/16)+1:当第一参数不成立时,编号等于行号除以16的商取整后再加1。例如:
A15,编号= INT(ROW(A15)/16)+1= INT(15/16)+1=INT( 0.9375) +1=0+1=1
A17,编号= INT(ROW(A17)/16)+1= INT(17/16)+1=INT( 1.0625) +1=1+1=2
……
2
VBA法
1.操作步骤
(1)进入VBA编辑窗口。按组合键Alt+F11(或者单击“开发工具”选项卡“Visual Basic”按钮)进入Excel中的Visual Basic。
(2)在“插入”菜单中选择“模块”命令,然后在右侧窗口中输入以下代码:
Sub rep()
Dim i%
For i = 1 To 1000
S("A" & (16 * i - 15) & ":A" & (16 * i)) = i
Next i
End Sub
(3)按F5键(或者单击快速工具栏中的运行按钮
)运行以上程序之后,即可在A1:A16000单元格中快速生成连续重复编号,运算过程不到一秒钟,如下图所示。
2.代码解释
For i = 1 To 1000:用于指定编号的取值范围。如果编号取值是2到25,则写成For i = 2 To 25。
Sheet2:用于指定需要编号的工作表。sheet2并非指的是工作表的名称,而是指Excel工作簿的第2张表(从左向右),若需要在第1张表中生成编号,只需将代码改成sheet1即可,其他情况类推。
Range("A" & (16 * i - 15) & ":A" & (16 * i)):用于指定编号的单元格范围和规则,意思是从A1单元格开始到A(16 * i)单元格止每16个单元格编1个号。
"A"指的是需要生产编号的列号,若需要在B列或C列生成编号,则写成“B”或者“C”;
若需在某一列第m个单元格开始生成编号,则只需将16 * i – 15替换成16 * i+m-16、16 * i替换成16 * i+m-1即可。
若需要每5个单元格编1个号,并从B1开始编号,则可以写成Range("B" & (5 * i - 4) & ":B" & (5 * i))
重点回顾
快速选定某区域。用鼠标选定备选区域左上角的单元格(如:A1);在Excel地址栏输入备选区域右下角的单元格(如:B16); 按住“Shift” 键不松手,再按“Enter”键。完成以上三个步骤之后即可快速选定某区域。
巧用Excel函数是关键。有很多初学者已经掌握了大量的Excel基本函数,但是就是不知道怎么样、何时用、用哪种。我建议大家把Excel基本函数当作我们炒菜的“素材”,把数学规律、事件内隐藏的逻辑关系当作炒菜的“工具”,多思考、勤实践,那么再遇到问题,就会“信手捏来”了。
1.《【excel怎么加备选】19秒,16000行Excel数据自动分组号码!》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《【excel怎么加备选】19秒,16000行Excel数据自动分组号码!》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/2516097.html