二維碼 購(gòu)物車
部落窩在線教育歡迎您!

3秒鐘實(shí)現(xiàn)16000行數(shù)據(jù)自動(dòng)分組編號(hào)

?

作者:康艿馨來(lái)源:部落窩教育發(fā)布時(shí)間:2018-06-07 20:07:39點(diǎn)擊:5971

分享到:
0
收藏    收藏人氣:0人
版權(quán)說(shuō)明: 原創(chuàng)作品,禁止轉(zhuǎn)載。

小編有話說(shuō):編號(hào)說(shuō)起來(lái)誰(shuí)都會(huì),但是16000行數(shù)據(jù),每16組編一個(gè)號(hào),編號(hào)還要連續(xù)你會(huì)嗎?聽說(shuō)這種編號(hào)方式在處理社保的時(shí)候會(huì)用到,各位趕緊往下看吧!


16000人參與社保代扣代繳協(xié)議,需要將每16人設(shè)定為一組,第1-16行重復(fù)編號(hào)為1、第17-32行重復(fù)編號(hào)為2、、第15985-16000行重復(fù)編號(hào)為1000。怎么弄?

上面是前段時(shí)間我?guī)椭笥呀鉀Q的一個(gè)真實(shí)問題,我把它稱之為數(shù)據(jù)分組重復(fù)編號(hào)。16000行數(shù)據(jù),編號(hào)值從11000。如果采用輸入數(shù)字+粘貼的方式處理,工作量較大,且容易出錯(cuò)?;诖耍曳窒韮煞N方法給各位,3秒鐘實(shí)現(xiàn)16000行數(shù)據(jù)自動(dòng)分組編號(hào)。




方法1函數(shù)法


1.操作步驟

1)編輯連續(xù)重復(fù)編號(hào)公式。A1單元格中輸入公式:=IF(MOD(ROW(A1),16)=0,ROW(A1)/16,INT(ROW(A1)/16)+1)。如下圖所示:

注:公式中所有數(shù)字、符號(hào)、標(biāo)點(diǎn),都必須在英文輸入法狀態(tài)下輸入

2)快速選定連續(xù)重復(fù)編號(hào)區(qū)域。用鼠標(biāo)選點(diǎn)擊A1單元格;在Excel地址欄輸入A16000; 按住Shift鍵不松手,再按Enter鍵。完成以上三個(gè)步驟之后就可以快速選定需要連續(xù)重復(fù)編號(hào)的區(qū)域。如下圖所示:



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

 

注:很多朋友習(xí)慣用鼠標(biāo)拖動(dòng)填充公式,此處由于編號(hào)多達(dá)16000行,采用鼠標(biāo)拖動(dòng)填充將很耗時(shí),故不推薦使用。

2.函數(shù)解釋

公式中共運(yùn)用了4個(gè)函數(shù)。我們先來(lái)看看這四個(gè)函數(shù)的各自作用。

l  ROW()函數(shù)。ROW()函數(shù)返回該行任意一個(gè)單元格所在的行號(hào),如: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)x0時(shí),INT (x)= x值的整數(shù)部分(非四舍五入);

當(dāng)x<0時(shí),INT (x)=x值整數(shù)部分的絕對(duì)值+1)乘以-1。

l  MOD()函數(shù)。求兩個(gè)數(shù)相除的余數(shù),如:MOD(1,16)=1、MOD(16,16)=0。當(dāng)MOD(x,y)=0時(shí),x即為y的整數(shù)倍。(注:第一個(gè)參數(shù)為被除數(shù),第二個(gè)參數(shù)為除數(shù))

l  IF()函數(shù)。IF()函數(shù)有三個(gè)參數(shù),即:IF(邏輯判斷表達(dá)式,結(jié)果1,結(jié)果2),當(dāng)邏輯判斷表達(dá)式成立(即為真:TRUE),IF()函數(shù)返回結(jié)果1;當(dāng)邏輯判斷表達(dá)式不成立(即為假:FALSE),IF()函數(shù)返回結(jié)果2

然后我們來(lái)理解整個(gè)公式的含義。

=IF(MOD(ROW(A1),16)=0,ROW(A1)/16,INT(ROW(A1)/16)+1)

IF第一參數(shù)MOD(ROW(A1),16)=0判斷單元格所在行號(hào)除以16后的余數(shù)是否等于0,也就是行號(hào)是否能被16整除。很顯然,1632等能被16整除,余數(shù)=0,條件成立;1517等不能被16整除,余數(shù)≠0,條件不成立。

IF第二參數(shù)ROW(A1)/16當(dāng)?shù)谝粎?shù)條件成立時(shí),編號(hào)等于行號(hào)除以16的商。例如:

A16,編號(hào)= ROW(A16)/16=16/16=1

A32,編號(hào)= ROW(A32)/16=32/16=2

……

IF 第三參數(shù)INT(ROW(A1)/16)+1當(dāng)?shù)谝粎?shù)不成立時(shí),編號(hào)等于行號(hào)除以16的商取整后再加1。例如:

A15,編號(hào)= INT(ROW(A15)/16)+1= INT15/16+1=INT( 0.9375) +1=0+1=1

A17,編號(hào)= INT(ROW(A17)/16)+1= INT17/16+1=INT( 1.0625) +1=1+1=2

……


方法2VBA


1.操作步驟

1)進(jìn)入VBA編輯窗口。按組合鍵Alt+F11(或者單擊“開發(fā)工具”選項(xiàng)卡“Visual Basic”按鈕)進(jìn)入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鍵(或者單擊快速工具欄中的運(yùn)行按鈕)運(yùn)行以上程序之后,即可在A1A16000單元格中快速生成連續(xù)重復(fù)編號(hào),運(yùn)算過程不到一秒鐘,如下圖所示。

2.代碼解釋

For i = 1 To 1000用于指定編號(hào)的取值范圍。如果編號(hào)取值是225,則寫成For i = 2 To 25。

Sheet2:用于指定需要編號(hào)的工作表。sheet2并非指的是工作表的名稱,而是指Excel工作簿的第2張表(從左向右),若需要在第1張表中生成編號(hào),只需將代碼改成sheet1即可,其他情況類推。

Range("A" & (16 * i - 15) & ":A" & (16 * i)):用于指定編號(hào)的單元格范圍和規(guī)則,意思是從A1單元格開始到A16 * i)單元格止每16個(gè)單元格編1個(gè)號(hào)。

"A"指的是需要生產(chǎn)編號(hào)的列號(hào),若需要在B列或C列生成編號(hào),則寫成“B”或者“C”;

若需在某一列第m個(gè)單元格開始生成編號(hào),則只需將16 * i – 15替換成16 * i+m-16、16 * i替換成16 * i+m-1即可。

若需要每5個(gè)單元格編1個(gè)號(hào),并從B1開始編號(hào),則可以寫成Range("B" & (5 * i - 4) & ":B" & (5 * i))

重點(diǎn)回顧

快速選定某區(qū)域。用鼠標(biāo)選定備選區(qū)域左上角的單元格(如:A1);在Excel地址欄輸入備選區(qū)域右下角的單元格(如:B16; 按住Shift鍵不松手,再按Enter鍵。完成以上三個(gè)步驟之后即可快速選定某區(qū)域。

巧用Excel函數(shù)是關(guān)鍵。有很多初學(xué)者已經(jīng)掌握了大量的Excel基本函數(shù),但是就是不知道怎么樣、何時(shí)用、用哪種。我建議大家把Excel基本函數(shù)當(dāng)作我們炒菜的素材,把數(shù)學(xué)規(guī)律、事件內(nèi)隱藏的邏輯關(guān)系當(dāng)作炒菜的工具,多思考、勤實(shí)踐,那么再遇到問題,就會(huì)信手捏來(lái)了。


本文配套的練習(xí)課件請(qǐng)加入QQ群:316492581下載。

如果您因工作所需使用到Excel,不妨關(guān)注部落窩教育的《一周Excel直通車》視頻課或《Excel極速貫通班》直播課系統(tǒng)學(xué)習(xí)。

相關(guān)推薦:

     統(tǒng)計(jì)中國(guó)式排名的三種方法,一定有一個(gè)適合你》