excel數(shù)據(jù)處理:如何對多行數(shù)據(jù)進行分組重復(fù)編號

小編有話說:編號說起來誰都會,但是16000行數(shù)據(jù),每16組編一個號,編號還要連續(xù)你會嗎?聽說這種編號方式在處理社保的時候會用到,各位趕緊往下看吧!
有16000人參與“社保代扣代繳協(xié)議”,需要將每16人設(shè)定為一組,第1-16行重復(fù)編號為1、第17-32行重復(fù)編號為2、…、第15985-16000行重復(fù)編號為1000。怎么弄?學(xué)習(xí)更多技巧,請收藏部落窩教育excel圖文教程。
上面是前段時間我?guī)椭笥呀鉀Q的一個真實問題,我把它稱之為數(shù)據(jù)分組重復(fù)編號。16000行數(shù)據(jù),編號值從1到1000。如果采用輸入數(shù)字+粘貼的方式處理,工作量較大,且容易出錯?;诖?,我分享兩種方法給各位,3秒鐘實現(xiàn)16000行數(shù)據(jù)自動分組編號。

方法1:函數(shù)法
1.操作步驟
(1)編輯“連續(xù)重復(fù)編號”公式。在A1單元格中輸入公式:=IF(MOD(ROW(A1),16)=0,ROW(A1)/16,INT(ROW(A1)/16)+1)。如下圖所示:

注:公式中所有數(shù)字、符號、標(biāo)點,都必須在“英文輸入法”狀態(tài)下輸入
(2)快速選定“連續(xù)重復(fù)編號”區(qū)域。用鼠標(biāo)選點擊A1單元格;在Excel地址欄輸入A16000;?按住“Shift”?鍵不松手,再按“Enter”鍵。完成以上三個步驟之后就可以快速選定需要連續(xù)重復(fù)編號的區(qū)域。如下圖所示:

(3)快速填充公式。選定“連續(xù)重復(fù)編號”區(qū)域之后,在“開始”選項卡中,點擊“填充”選項卡,選擇“向下”選項,即可完成公式自動填充。“連續(xù)重復(fù)編號”結(jié)果如下圖所示:

?

注:很多朋友習(xí)慣用鼠標(biāo)拖動填充公式,此處由于編號多達16000行,采用鼠標(biāo)拖動填充將很耗時,故不推薦使用。
2.函數(shù)解釋
公式中共運用了4個函數(shù)。我們先來看看這四個函數(shù)的各自作用。
l??ROW()函數(shù)。ROW()函數(shù)返回該行任意一個單元格所在的行號,如:ROW(A13)=13、?ROW(B13)=13。
l??INT()函數(shù)。取整函數(shù),如:INT (0.1)=0、INT (2)=2、INT (3.7)=3、INT(-1.1)=-2。即:當(dāng)x≥0時,INT (x)=?x值的整數(shù)部分(非四舍五入);
當(dāng)x<0時,INT (x)=(x值整數(shù)部分的絕對值+1)乘以-1。
l??MOD()函數(shù)。求兩個數(shù)相除的余數(shù),如:MOD(1,16)=1、MOD(16,16)=0。當(dāng)MOD(x,y)=0時,x即為y的整數(shù)倍。(注:第一個參數(shù)為被除數(shù),第二個參數(shù)為除數(shù))
l??IF()函數(shù)。IF()函數(shù)有三個參數(shù),即:IF(邏輯判斷表達式,結(jié)果1,結(jié)果2),當(dāng)邏輯判斷表達式成立(即為真:TRUE),IF()函數(shù)返回結(jié)果1;當(dāng)邏輯判斷表達式不成立(即為假:FALSE),IF()函數(shù)返回結(jié)果2。學(xué)習(xí)更多技巧,請收藏部落窩教育excel圖文教程。
然后我們來理解整個公式的含義。
=IF(MOD(ROW(A1),16)=0,ROW(A1)/16,INT(ROW(A1)/16)+1)
IF第一參數(shù)MOD(ROW(A1),16)=0:判斷單元格所在行號除以16后的余數(shù)是否等于0,也就是行號是否能被16整除。很顯然,16、32等能被16整除,余數(shù)=0,條件成立;15、17等不能被16整除,余數(shù)≠0,條件不成立。
IF第二參數(shù)ROW(A1)/16:當(dāng)?shù)谝粎?shù)條件成立時,編號等于行號除以16的商。例如:
A16,編號=?ROW(A16)/16=16/16=1
A32,編號=?ROW(A32)/16=32/16=2
……
IF?第三參數(shù)INT(ROW(A1)/16)+1:當(dāng)?shù)谝粎?shù)不成立時,編號等于行號除以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(或者單擊“開發(fā)工具”選項卡“Visual Basic”按鈕)進入Excel中的Visual Basic。
(2)在“插入”菜單中選擇“模塊”命令,然后在右側(cè)窗口中輸入以下代碼:
Sub rep()
Dim i%
For i = 1 To 1000
Sheet2.Range("A" & (16 * i - 15) & ":A" & (16 * i)) = i
Next i
End Sub
(3)按F5鍵(或者單擊快速工具欄中的運行按鈕

)運行以上程序之后,即可在A1:A16000單元格中快速生成連續(xù)重復(fù)編號,運算過程不到一秒鐘,如下圖所示。

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)):用于指定編號的單元格范圍和規(guī)則,意思是從A1單元格開始到A(16 * i)單元格止每16個單元格編1個號。
"A"指的是需要生產(chǎn)編號的列號,若需要在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))
重點回顧
快速選定某區(qū)域。用鼠標(biāo)選定備選區(qū)域左上角的單元格(如:A1);在Excel地址欄輸入備選區(qū)域右下角的單元格(如:B16);?按住“Shift”?鍵不松手,再按“Enter”鍵。完成以上三個步驟之后即可快速選定某區(qū)域。
巧用Excel函數(shù)是關(guān)鍵。有很多初學(xué)者已經(jīng)掌握了大量的Excel基本函數(shù),但是就是不知道怎么樣、何時用、用哪種。我建議大家把Excel基本函數(shù)當(dāng)作我們炒菜的“素材”,把數(shù)學(xué)規(guī)律、事件內(nèi)隱藏的邏輯關(guān)系當(dāng)作炒菜的“工具”,多思考、勤實踐,那么再遇到問題,就會“信手拈來”了。學(xué)習(xí)更多技巧,請收藏部落窩教育excel圖文教程。
****部落窩教育-excel數(shù)據(jù)分組編號****
原創(chuàng):康艿馨/部落窩教育(未經(jīng)同意,請勿轉(zhuǎn)載)
更多教程:部落窩教育(http://www.itblw.com)
微信公眾號:exceljiaocheng,+v:blwjymx2