請?jiān)?,這并不是一條合適的標(biāo)題,之所以如此,是因?yàn)榻裉炜吹?a href="http://www.itdecent.cn/users/63894ce53d92" target="_blank">傲看今朝寫的一篇《1個(gè)EXCEL技巧,幫你告別加班?!》,我想分享另一種實(shí)現(xiàn)該文中的案例的方法供你參考,所以就取了這個(gè)孿生標(biāo)題,你可以兩篇對比著看,都有值得學(xué)習(xí)的地方。
該文中的案例是“將300百多條序列號(hào)平均分配到每個(gè)組員頭上”,序列號(hào)是呈一列的,組員就叫它小A、小B、小C、小D、小E,小F吧,像下表這樣:

該文使用了多個(gè)步驟來實(shí)現(xiàn)分配,并給了很多操作性的技巧,即不使用公式也能做到,對于很多人來說,這個(gè)方法就夠用了。
但如果希望進(jìn)階一點(diǎn),能用一條公式解決,豈不快哉?!
公式:=IF(ROW()<63,INDEX($A:$A,ROW()+62*(COLUMN()-2)),"")

然而,給你一條魚并不重要,重要的是釣到這條魚的方法。
一條公式并不重要,重要的是產(chǎn)生一條公式的思路。

第1個(gè)念頭,得知道個(gè)數(shù)字:每個(gè)人平均要分配到多少個(gè)序列號(hào)?
這很簡單:370/6≈62。
第2個(gè)念頭,從最簡單的部分開始:寫出分配給小A的第一個(gè)小公式
如果讓你先想想,370個(gè)序列號(hào)分配給6個(gè)人的步驟應(yīng)該是怎樣的,你怎么做?
應(yīng)該是:把2-63行(因?yàn)槊终剂艘恍校┑男蛄刑?hào)給小A,再把64-125行的數(shù)據(jù)給小B,再把126-187行的數(shù)據(jù)給小C,以此類推。
在一個(gè)表格里運(yùn)用公式時(shí),第一個(gè)單元格所需要考慮的方面是最少的,最容易寫出公式,當(dāng)然就從這里開始咯。
把2-63行的序列號(hào)給小A
? ? ? ? ? ? ? ↓
就是把第2行的數(shù)據(jù)提出來放在小A這列的第2行
把第3行的數(shù)據(jù)提出來放在小A這列的第3行
? ? ? ? ? ? ? ↓
小A這列的第N行的內(nèi)容就是序列號(hào)的第N行
? ? ? ? ? ? ? ↓
通過指定行號(hào)和列號(hào)提取數(shù)據(jù)的函數(shù)是INDEX
? ? ? ? ? ? ? ↓
輸入公式=INDEX($A:$A,ROW())試試

下拉公式后都順利提取出來了:

第3個(gè)念頭,小B、小C他們怎么辦呢:分析他們數(shù)據(jù)的關(guān)系
小A這列的第N行的內(nèi)容就是序列號(hào)的第N行
小B這列的第N行的內(nèi)容應(yīng)該是序列號(hào)的第N+62行
小C這列的第N行的內(nèi)容應(yīng)該是序列號(hào)的第N+124行
? ? ? ? ? ? ? ? ? ↓
簡單的倍數(shù)關(guān)系
? ? ? ? ? ? ? ? ? ↓
小A這列的第N行的內(nèi)容就是序列號(hào)的第N+62*0行
小B這列的第N行的內(nèi)容應(yīng)該是序列號(hào)的第N+62*1行
小C這列的第N行的內(nèi)容應(yīng)該是序列號(hào)的第N+62*2行
? ? ? ? ? ? ? ? ? ↓
后面的0、1、2是逐1遞增的,小A、小B、小C的列號(hào)也是逐1遞增?統(tǒng)一他們的關(guān)系
? ? ? ? ? ? ? ? ? ↓
小A這列的第N行的內(nèi)容就是序列號(hào)的第N+62*(該列列號(hào)-2)行
小B這列的第N行的內(nèi)容應(yīng)該是序列號(hào)的第N+62*(該列列號(hào)-2)行
小C這列的第N行的內(nèi)容應(yīng)該是序列號(hào)的第N+62*(該列列號(hào)-2)行
? ? ? ? ? ? ? ? ? ↓
寫出公式:=INDEX($A:$A,ROW()+62*(COLUMN()-2))試試↓

橫拉、下拉公式后的結(jié)果:

大功告成了?我們雙擊單元格右下角的十字標(biāo)把公式拉到底試試。

什么鬼?每個(gè)人只需要分配62行數(shù)據(jù)的話,為什么63行下面還有數(shù)據(jù)?每個(gè)人我只需要62行啊,這公式不是多此一舉瞎操心嗎?
第4個(gè)念頭,增加判斷條件:去除公式可能出現(xiàn)的多余計(jì)算
啊,忘了再添加一個(gè)條件:該行行號(hào)大于63的話,就不要再提取數(shù)據(jù)了。
反過來說就是:該行行號(hào)小于等于63的話,就用前面的公式計(jì)算,否則就留空。
寫出公式:=IF(ROW()<=63,INDEX($A:$A,ROW()+62*(COLUMN()-2)),"")試試
于是有了開頭的一幕,每個(gè)人提取62行數(shù)據(jù)之后就留空了:

本文到此應(yīng)該就結(jié)束了,但我想到也許有人會(huì)說:才300多條數(shù)據(jù),直接選擇-復(fù)制-粘貼,分分鐘也解決了,何必搞得寫一條公式這么麻煩?
對啊,才300多條數(shù)據(jù),Ctrl+C、Ctrl+V可能更簡單更快捷,但其實(shí)我想說的是:
只有在平常的小場景中常常練習(xí)公式和寫公式的思路,才能在你面對幾千幾萬條的龐大的數(shù)據(jù)時(shí)得心應(yīng)手,一天甚至幾天的工作量分分鐘就得到結(jié)果,哪怕寫公式花了半個(gè)小時(shí),這才是告別加班的正確方式!