[摘 要]論文以Excel 2003/XP環(huán)境為基礎(chǔ),給出了進(jìn)銷存管理信息系統(tǒng)的單元格的實(shí)現(xiàn)方法與庫存信息的自動生成的VBA程序?qū)崿F(xiàn)方法,對中小企業(yè)實(shí)現(xiàn)企業(yè)信息化管理具有很好的借鑒價值。
[關(guān)鍵詞]Excel 2003/XP;進(jìn)銷存管理信息系統(tǒng);設(shè)計方案
[中圖分類號] F270.7
[文獻(xiàn)標(biāo)識碼] A
[文章編號] 1673-0194(2006)09-0014-02
[收稿日期] 2006-06-30
[作者簡介] 朱順泉(1965-),湖南人,2004年上海財經(jīng)大學(xué)應(yīng)用經(jīng)濟(jì)學(xué)博士后出站,現(xiàn)為廣東商學(xué)院信息學(xué)院教授。主要研究方向:管理信息系統(tǒng),信用評級與財務(wù)預(yù)警,投資決策與風(fēng)險分析等。
1 引言
目前市面上一般的進(jìn)銷存管理信息系統(tǒng)至少需要幾千元,而且需要大量維護(hù)費(fèi)用,購買現(xiàn)成的進(jìn)銷存管理信息系統(tǒng),對于一個剛剛起步中小企業(yè)來說,是不可取的。是否可以開發(fā)出一個簡單易行的進(jìn)銷存管理信息系統(tǒng)呢?這里介紹在Excel 2003/XP環(huán)境下,來開發(fā)中小企業(yè)的進(jìn)銷存管理信息系統(tǒng),實(shí)現(xiàn)中小企業(yè)的進(jìn)銷存信息管理的辦公自動化,這樣可以既省錢又省力地進(jìn)行企業(yè)信息化管理的建設(shè)。
2 進(jìn)銷存管理信息系統(tǒng)單元格的操作實(shí)現(xiàn)方法
這里我們要實(shí)現(xiàn)的是:一個小公司的進(jìn)銷存信息管理,假設(shè)每月的銷售記錄不超過1 000個數(shù)據(jù),進(jìn)貨的記錄不超過50個數(shù)據(jù),產(chǎn)品品種為5種,即AA、BB、CC、DD、EE。實(shí)現(xiàn)的步驟如下:
(1)創(chuàng)建銷售工作表
進(jìn)入Excel,單擊“文件”菜單,再單擊“新建”命令,創(chuàng)建一個新工作簿。在工作表sheet1上建立產(chǎn)品銷售報表,方法是單擊工作表標(biāo)簽sheet1,進(jìn)入工作表sheet1,在A1單元格內(nèi)輸入“日期”,在B1單元格內(nèi)輸入“購貨單位”,在C1單元格內(nèi)輸入“產(chǎn)品型號”,在D1單元格內(nèi)輸入“銷售數(shù)量”。用鼠標(biāo)雙擊工作表標(biāo)簽,改名為“銷售”,如圖1所示。

(2)創(chuàng)建進(jìn)貨工作表
在工作表sheet2上建立各類產(chǎn)品進(jìn)貨情況表,方法是單擊工作表標(biāo)簽sheet2,進(jìn)入工作表sheet2,在A1單元格內(nèi)輸入“日期”,在B1單元格內(nèi)輸入“產(chǎn)品型號”,在C1單元格內(nèi)輸入“進(jìn)貨數(shù)量”,再輸入相應(yīng)的數(shù)據(jù)。用鼠標(biāo)雙擊工作表sheet2標(biāo)簽,改名為“進(jìn)貨”。
(3)創(chuàng)建庫存工作表
單擊工作表標(biāo)簽sheet3,進(jìn)入工作表sheet3,在A1單元格內(nèi)輸入“產(chǎn)品型號”,在B1單元格內(nèi)輸入“進(jìn)貨數(shù)量”,在C1單元格內(nèi)輸入“銷售數(shù)量”,在D1單元格內(nèi)輸入“當(dāng)前庫存量”,在E1單元格輸入“最小庫存量”,在F1單元格輸入“進(jìn)貨提示”,在A2、A3、A4、A5、A6單元格內(nèi)依次輸入各產(chǎn)品型號,如AA、BB、CC、DD、EE,用鼠標(biāo)雙擊工作表sheet3標(biāo)簽,改名為“庫存”,如圖2所示。

(4)實(shí)現(xiàn)自動動態(tài)統(tǒng)計和進(jìn)貨提示
①自動動態(tài)統(tǒng)計:在“庫存”工作表中的B2單元格內(nèi)輸入函數(shù)“=Sumif(進(jìn)貨!$B$2:$B$51,A2,進(jìn)貨!$C$2:$C$51)”,用鼠標(biāo)單擊B2單元格右下角的填充柄不放,向下拖動至B6單元格進(jìn)行公式復(fù)制。同理,在C2單元格內(nèi)輸入函數(shù)“=Sumif(銷售!$C$2:$C$1001,A2,銷售!$D$2:$D$1001)”,用鼠標(biāo)單擊C2單元格右下角的填充柄不放,向下拖動至C6單元格進(jìn)行公式復(fù)制。在D2單元格內(nèi)輸入公式“=B2-C2”,用鼠標(biāo)單擊D2單元格右下角的填充柄不放,向下拖動至D6單元格進(jìn)行公式復(fù)制。
②自動進(jìn)貨提示:在F2單元格內(nèi)輸入公式“=if(D2 至此,當(dāng)前庫存情況的自動動態(tài)統(tǒng)計和進(jìn)貨提示工作便完成了。以后,每當(dāng)在“銷售”工作表或“進(jìn)貨”工作表中輸入一個數(shù)據(jù),在“庫存”工作表中就自動統(tǒng)計出每一種產(chǎn)品的“進(jìn)貨數(shù)量”、“銷售數(shù)量”和“當(dāng)前庫存量”,并且會在“進(jìn)貨提示”欄內(nèi)自動提示哪種產(chǎn)品該進(jìn)貨了。 假設(shè)我們規(guī)定了各種產(chǎn)品的最小庫存量(AA,34;BB,100;CC,80;DD,20;EE,100),在進(jìn)貨表中輸入了產(chǎn)品的進(jìn)貨數(shù)量(AA,234;BB,1000;CC,360;DD,100;EE,600),在銷售表中輸入了產(chǎn)品的銷售數(shù)量(AA,201;BB,870;CC,300;DD,56;EE,398),打開庫存表,如圖3所示。 從圖中可以看出產(chǎn)品AA和CC需要進(jìn)貨。 (5)上述操作兩種改進(jìn)的方法 上邊舉的是一個簡單的例子。實(shí)際工作中,只要稍加修改,上例即可適合實(shí)際應(yīng)用。實(shí)際應(yīng)用時,為了少修改函數(shù),可以虛擬進(jìn)貨和銷售記錄,如進(jìn)貨記錄為100個數(shù)據(jù),可以虛擬為10 000或者更多(注:這個假設(shè)是可以去掉的,后面的程序中就體現(xiàn)了這一點(diǎn)),則在“庫存”工作表中進(jìn)貨數(shù)量欄的B2單元格內(nèi)輸入的函數(shù)可以為“=Sumif(進(jìn)貨!$C$2:$C$10 000,A2,進(jìn)貨!$D$2:$D$10 000)”。銷售記錄函數(shù)的修改同進(jìn)貨記錄。如果再添加產(chǎn)品品種,只需在“庫存”工作表中產(chǎn)品型號欄內(nèi)添入產(chǎn)品名稱,最小庫存量欄內(nèi)填入此產(chǎn)品的規(guī)定最小庫存量,其他各欄復(fù)制相應(yīng)的公式即可。 假如企業(yè)銷售的產(chǎn)品品種非常多,照上面的方法查看是否進(jìn)貨就不太方便,我們可以用如下辦法來解決這個問題:仍以上面的5個產(chǎn)品的例子為例,當(dāng)?shù)玫綀D3以后,選擇“數(shù)據(jù)”菜單,從下拉菜單中選擇“篩選”后,選擇“自動篩選”,如圖4結(jié)果。 從進(jìn)貨提示欄選擇進(jìn)貨,如圖5所示。這樣,就可以清楚地知道哪種產(chǎn)品該進(jìn)貨了。 3 進(jìn)銷存管理信息系統(tǒng)庫存信息的VBA程序自動生成實(shí)現(xiàn)方法 以上的操作過程是很繁瑣的,稍微一不小心就很容易出錯,為了避免這種情況的發(fā)生,提高工作效率,也可以通過Excel的VBA宏來實(shí)現(xiàn)。為此,編制VBA代碼如下,這樣就可以實(shí)現(xiàn)庫存信息管理的自動化。 Sub kc( ) Sheets(\"庫存\").Select For i = 1 To 5 Range(\"b2\").Offset(i - 1, 0) = Application.SumIf(Range(\"進(jìn)貨!B:B\"), Range(\"A2\").Offset(i - 1, 0), Range(\"進(jìn)貨!C:C\")) Range(\"C2\").Offset(i - 1, 0) = Application.SumIf(Range(\"銷售!C:C\"), Range(\"A2\").Offset(i - 1, 0), Range(\"銷售!D:D\")) Range(\"d2\").Offset(i - 1, 0) = Range(\"b2\").Offset(i - 1, 0) - Range(\"C2\").Offset(i - 1, 0) If Range(\"d2\").Offset(i - 1, 0) < Range(\"e2\").Offset(i - 1, 0) Then Range(\"f2\").Offset(i - 1, 0) = \"進(jìn)貨\" Else Range(\"f2\").Offset(i - 1, 0) = \"不進(jìn)貨\" End If Next i End Sub

