2013年6月14日 星期五

資料庫與輸入輸出介面 Excel初學者常易患的錯誤(二)

資料庫與輸入輸出介面
Excel初學者常易患的錯誤()
常碰到excel的學習者把「資料庫」和「輸入輸出」弄混在一起,出現一些問題,所以特別要來說明清楚。
excel輸入就是「寫入資料」或「匯入資料」。寫入資料,會VBE的人可以設計「輸入表單」,「匯入資料」也有其技巧。但初學者這些即使都不會也可以一筆一筆在各工作表鍵入資料。所以,「輸入」並沒問題。
比較常遇到的問題是「輸出」。在螢幕上「看資料」以及把資料以你想要的格式「列印出來」等等都是「輸出」。譬如我們有一個很長的名單,全部放在A欄,可能有幾千筆,甚至更多。每個頁面看到約20筆,按pgdn下一頁也是20筆,如果把他列印出來更是每一頁空空洞洞的,浪費很多紙。就有人會想到把第二頁的資料抓到第一頁的B欄,第三頁的資料抓到第一頁的C欄,… … … 然後問題就來了。有兩大問題。
第一,是如果資料幾千筆要如何有效率的搬?
第二,是搬了之後「整個資料庫都亂了」,如何進行資料庫原有的尋找、取代、運算、小計、排序、篩選、樞紐分析等等功能都變成無法進行或是很難進行。「搞了好久都弄不出來」,「只好請教高手」等等
歸根就底,就是大家要把「資料庫」和「輸出輸入介面」要分開。你可以不要輸出輸入介面,直接在資料庫中寫入資料,讀資料,印資料。但假如你不滿意或有其他之想法,想要把你讀資料的畫面以及列印的畫面以你看得比較舒服的畫面呈現出來,可以,但是「一定要保留原來的寫有資料的工作表」,另外開新的工作表,把「資料庫工作表」中你要的欄位整個複製過去,再去搬動。或是你可以寫你的表格,再去連結到「資料工作表」。譬如原來的姓名在sheet1A欄,sheet2是你想要列印的工作表,sheet2A1+sheet1!A1, 往下複製20列,sheet2B1+sheet1! A21, 往下複製。諸如此類,你想做什麼都可以,sheet1一定要還在絕對不可以就在sheet1工作表搬資料,搬了很爽了之後再來喊救命,本來的運算功能都沒辦法做了!
資料庫excel的靈魂,是excel的精華。Excel有很強大的功能可以快速有效率的做資料的查詢、分析、分類、統計等等精彩的運算。但資料庫的基本就是「性質相同的資料要放在同一個欄位」。這是要嚴格遵守及尊重的事。不要怕資料太長。不是常聽人家說「我的資料有好幾萬筆」嗎?長沒關係,不可以刻意把他折短,折到不同欄位去、折到不同的工作表去、折到不同的檔案去。都整個的破壞了「資料庫」的精神,變成破碎殘切零散的資料了,然後再來喊救命。
我在「excel初學者常易患的錯誤」一文中,就是講到很多初學者常會看到資料太長太多,就依月份、依種類、依性質等每一月份弄一個工作表,或每一種類設一個工作表,甚至弄到好幾百個工作表之類的,這都錯了,又辛苦、又難。這種錯誤是「資料庫被扯碎了」。然後「請問如何跨工作表運算?」「如何跨檔案運算?」都是「庸人自擾之」。
另外一種,只有一個工作表,就如我前面舉的例子,他把A2140筆的資料搬到B欄,4160筆搬到C欄,搬得很辛苦,然後接下來就不會做了。這種就屬於「資料庫不見了」。
還有,「合併儲存格」更是半路殺出來的程咬金,你的畫面變漂亮了,但「資料庫」也被破壞了,很多動作做不下去了。
總結,就是
1.     「輸出」和「資料庫」要獨立。資料庫一定要很完整的存在,輸出介面你最好另外開一個工作表去發揮
2.     資料庫要完整。性質相同的資料就是要寫在同一個工作表的同一個欄位,不可拆碎到不同欄位、不同工作表或不同檔案。
3.     資料庫那個工作表不可以做「合併儲存格」的動作,要另外開一個工作表來做。
切記、切記!
如何有效率的搬資料
順便介紹在輸出介面如何有效率的搬資料。有三個層次:
開新工作表之後,把整欄資料複製過來新的工作表貼上之後
1.     資料不長幾百筆之內,你就是選取A欄的2140筆,剪下,到B1貼上,選取、剪下、貼上。最簡單。但這沒有連結,資料也不能更新。
2.     你可以用連結,前面已教過,B1=+A21, C1=+A41, … … 往下複製,這樣只要資料有變,也會跟著變。
3. 如果你的資料是幾千筆,就要用到 offset函數,Row(), column(), 絕對位址、相對位址的觀念以及代數的計算等。

沒有留言:

張貼留言