天天看點

EXCEL中的數據庫

  “ERP先從編碼始”,這話是大抵不錯的。隻要是編碼,顏色就不能不被考慮進去。我們廠用的是一個名叫《Pantone》的國際色版標準,第一件要做的事情就是在EXCEL中將其編號與英文名稱一股腦地輸入進去,以便在以後的工作中查找友善。

  俺沒有看錯人才,新招的ERP同僚MM果然好生了得,不到一天1925種顏色就全收歸EXCEL的單元格中。再出了一點主意讓她排了一下版,合并了一些單元格,作出了框線。到此為止,一個最常見的EXCEL表格就此產生。一般的文員也就到此為止了(見 圖1

EXCEL中的數據庫

)。

  可是俺不!俺是程式員耶,做出來的東西怎麼可能不專業?于是俺繼續對此表格繼續“研究”。

  在最開始,俺對這個Pantone色辦的了解,除了知道它是6位定長的數字以外,不會更多。6位數字本來可以表示百萬種顏色,在這個價值3000多港幣的Pantone色版中,隻有區區兩千來種,可見非常集中。那麼俺就想先知道它到底集中在哪一塊。于是俺另起一列,取其編號的最左邊的兩位數,然後用自動篩選,一看還有隻有11~19和25、46這幾個數,一看就知道後面那兩個數是ERP同僚MM手法過于快速,難免忙中出錯所緻,于是也順便將這些錯誤改了。也算意外的收獲。

  再查,先用CountIf("C2:C1926",“11”)去探知以11開頭的顏色有多少條,這個自然容易。俺又突發奇想:要

是要知道以11開頭的顏色中,哪個編號最小、哪個編號最大。這個問題單純用Min/Max函數肯定不能解決,看樣子有很大的挑戰性,于是俺立刻來了精神。知道EXCEL中專門有用于數據庫處理的函數,于是查閱幫助,把DSum/DCount/DMax/DMin的範例認真琢磨了半天,依然還是不得其門而入。函數一打上去,忽而是0,忽而是N/A,也不知道錯在哪裡,心中著實郁悶。

  上網搜,總算看懂了DMax/DMin/DCount函數的意思。建議微軟,將它自帶的範例換成網上好了解的那種,否則連俺這等專業數據庫程式員都不得要領,可見其難度之高,以及太不實用。俺對照網上例程,左嘗右試,終于小功告成!(見 圖2

EXCEL中的數據庫

  對DMax/DMin/DCount函數,俺的體會是:第一個參數所指定的範圍,一定要包含第三個參數所在的範圍。同時第三個參數的內容,也于第二個參數的內容也有關系。第二個參數名義上是一個標簽,其實是代指其所在的該列。在俺這個實例中,就是F列,也就是用Left函數所造出來的輔助列。

  現在知道了11等開頭的顏色編號的最小值、最大值,俺并不滿足,接著想:要是還能夠知道該最小值、最大值位于色版的第幾頁第幾個位置該有多好啊。此時俺暗暗叫苦,因為所有的頁數都已經合并,現在又要分開,如果對單元格本身動手,不是什麼難事,可是別忘記了俺是誰!

  不能直接用2作為公式的組成部分,因為拖動公式的時候,2總是不變,就達不到俺的目的了。俺用Row(b2)函數查出編號的單元格所位于的行,然後用Int((Row(B2)-2)+1就曉得了該行所在的頁數,剩下的就是用Text函數包裹,把它轉換成3位字元。頁出來了。然後把此頁號與序號以文字的形式相加:=Concatenate(K2,Text(B2,"0")),就得到了一個文字形式的四位數。前三位是頁,後一位是序。

繼續閱讀