2012年7月6日 星期五

【Excel】產生連續有規律的序號(Lesson 3/3)



續 【Excel】產生連續有規律的序號(Lesson 2)


解決(b)的問題,再來解決(a)這個文字序號的問題~
(a)A、B、C…是每10個換一次字母!直到J完畢,每100個再重頭由A開始。


解法:
=CHOOSE(IF(MOD(INT((ROW(A1)-1)/10)+1,10)=0,10,MOD(INT((ROW(A1)-1)/10)+1,10)),"A","B","C","D","E","F","G","H","I","J")
↑你可以把函式直接copy到Excel中貼上,就會看到結果囉!


作法及原理:


《1》這裡有提到文字序號(A、B、C…)是每10個才換一次~~,如果我依然想要利用"列號"來得到現在該不該換呢?這時可能就要靠些演算法的分析了。


突然覺得這部份,若沒有面對面說明或遠端教學…對於初學者來說,似乎很容易搞得迷迷糊糊滴~所以老師先列出算式原理…想瞭解滴再似底下找我吧!
=MOD(INT((ROW(A1)-1)/10)+1,10)
注意:這函式到循環10(99~100)時,MOD的結果也是0喔!所以要用上一堂課IF的方式判斷改成10
=IF(MOD(INT((ROW(A1)-1)/10)+1,10)=0,10,MOD(INT((ROW(A1)-1)/10)+1,10))


《2》再來進入本堂課的正題了…如果我可以依據列得到10個1、10個2~10個10,再重覆10個1、10個2…這樣,是否我就可以設定,當值=1時,帶出A、值=2時帶出B…值=10時帶出J?


當然可以囉,用用〔CHOOSE(第幾個,第1個值,第2個值,…,第幾個值)
CHOOSE(1,"A","B","C",...,"J")=A
CHOOSE(2,"A","B","C",...,"J")=B
CHOOSE(10,"A","B","C",...,"J")=J

好,CHOOSE裡有1、2、10,我們不是在《1》裡已經設出來了!
那…就把它換進去吧!
=CHOOSE(IF(MOD(INT((ROW(A1)-1)/10)+1,10)=0,10,MOD(INT((ROW(A1)-1)/10)+1,10)),"A","B","C","D","E","F","G","H","I","J")

如果你寫出來了!恭禧你,可以下課囉!!記得…回家作業~~

回家作業:
還記得Lesson1時,有提到最原始的問題
問題:2200-A01~A10、2200-B01~B10…2200-J01~J10,再來就2202-A01~A10…
請大家想想…前面4碼怎麼處理吧!
按Lesson1、Lesson2的步驟,就可以求出來了喔!加油~Go~

沒有留言:

張貼留言