董海桃
(山西機(jī)電職業(yè)技術(shù)學(xué)院,山西 長治 046011)
OFFICE辦公組件中的Excel是一個(gè)電子表格軟件,它是一種通用的計(jì)算工具,非常容易操作。它以電子表格方式處理數(shù)據(jù),對于表格數(shù)據(jù)的建立、編輯、訪問、查詢等操作很方便,可以像數(shù)據(jù)庫軟件一樣對記錄進(jìn)行添加、刪除、修改、排序、篩選和分類匯總等處理。另外它還提供大量系統(tǒng)函數(shù),可用于數(shù)據(jù)統(tǒng)計(jì)、數(shù)據(jù)分析等,特別適合財(cái)務(wù)會計(jì)等領(lǐng)域。但由于Excel具有復(fù)制函數(shù)的功能,使得它在編程方面的復(fù)雜度大大降低。
在學(xué)院的財(cái)務(wù)系統(tǒng)中通常有這樣的情況,每一學(xué)期都要收取一定的費(fèi)用,且每次收費(fèi)在不同的表中存儲,待一定時(shí)期時(shí)要查看每個(gè)學(xué)生的每次交費(fèi)情況,需要按學(xué)號將數(shù)據(jù)量較少的表合并到較大的表中。
COUNTIF函數(shù)是Microsoft Excel中對指定區(qū)域中符合指定條件的單元格計(jì)數(shù)的一個(gè)函數(shù)。該函數(shù)的語法規(guī)則如下:
COUNTIF(參數(shù)1,參數(shù)2)
參數(shù)1:要計(jì)算其中非空單元格數(shù)目的區(qū)域
參數(shù)2:以數(shù)字、表達(dá)式或文本形式定義的條件。
如果返回0,表示參數(shù)1所示的區(qū)域內(nèi)沒有滿足參數(shù)2給定條件的記錄。否則返回參數(shù)1所示的區(qū)域內(nèi)滿足參數(shù)2給定條件的記錄的條數(shù)。
例如:查找sheet1中A2單元格的內(nèi)容是否在sheet2中A1—C8區(qū)域內(nèi),結(jié)果存放在sheet1的D2單元格內(nèi)。如圖1、圖2所示。
圖1 COUNTIF函數(shù)
圖2 交費(fèi)表
可以在sheet1的D2單元格內(nèi)使用以下公式:
=COUNTIF(Sheet2!A2:C8,A2),結(jié)果顯示1,表示在sheet2中A1到C8區(qū)域內(nèi)存在A2單元格的內(nèi)容。
IF函數(shù)是對數(shù)值或公式進(jìn)行條件檢測的函數(shù),它可以根據(jù)判斷條件的真假值的不同,執(zhí)行不同的表達(dá)式,從而返回不同結(jié)果。IF函數(shù)的語法規(guī)則如下:
IF(參數(shù)1,參數(shù)2,參數(shù)3)
參數(shù)1:以數(shù)字、表達(dá)式或文本形式定義的條件
參數(shù)2:當(dāng)參數(shù)1的條件為真時(shí)執(zhí)行的表達(dá)式
參數(shù)3:當(dāng)參數(shù)1的條件為假時(shí)執(zhí)行的表達(dá)式
例如:查找sheet1中A2單元格的內(nèi)容是否在sheet2中A1-C8區(qū)域內(nèi),如果在,則顯示“在”,否則顯示“不在”,結(jié)果存放在sheet1的D2單元格內(nèi)。如圖3、圖4所示。
圖3 IF和COUNTIF的組合
圖4 VLOOKUP函數(shù)的使用
可以在sheet1的D2單元格內(nèi)使用以下公式:=IF(COUNTIF(Sheet2!A$2:C$8,A2),“在”,“不在”),結(jié)果顯示“在”,表示COUNTIF(Sheet2!A2:C8,A2)執(zhí)行的結(jié)果為非零,即為真,在sheet2中A1—C8區(qū)域內(nèi)有A2單元格的內(nèi)容。
VLOOKUP函數(shù)是一個(gè)按列(縱向)查找的函數(shù),其結(jié)果是返回該列所需查詢列序所對應(yīng)的值;和VLOOKUP函數(shù)同類的函數(shù)還有HLOOKUP函數(shù),但函數(shù)HLOOKUP是按行(橫向)查找的。
VLOOKU函數(shù)的語法規(guī)則如下:
VLOOKUP(參數(shù)1,參數(shù)2,參數(shù)3,參數(shù)4)
參數(shù)1:表示要查找的數(shù)
參數(shù)2:表示要在哪一個(gè)區(qū)域的第一列查找參數(shù)1
參數(shù)3:表示要返回的列序號
參數(shù)4:默認(rèn)值為TRUE,表示函數(shù)查找時(shí)是精確匹配,還是模糊(近似)匹配。如果參數(shù)設(shè)置為FALSE或0,則返回精確匹配,但如果找不到,則返回錯(cuò)誤值#N/A。如果參數(shù)設(shè)置為TRUE或1或不設(shè)置,將查找近似匹配值,也就是說,如果找不到精確匹配值,則返回小于參數(shù)1的最大數(shù)值。
解決此問題就是要將sheet1表的D列作為“交費(fèi)2”,對照合并sheet2的“交費(fèi)2”。即:在sheet1表中的A2單元格內(nèi)容為“142101”,在sheet2表中A列查找是否有“142101”,如果有,則將其對應(yīng)的第三列數(shù)據(jù)插入到sheet1表的D2單元格內(nèi)。
使用VLOOKUP函數(shù)解決此問題:
第一個(gè)參數(shù):A2單元格
第二個(gè)參數(shù):Sheet2表的A2到C8區(qū)域,表示為:Sheet2!$A$2:$C$8。此處A2:C8采用絕對地址,即字母和數(shù)字前面加了$符號,表示無論公式如何復(fù)制這個(gè)區(qū)域是不會變的。
第三個(gè)參數(shù):選取第二個(gè)參數(shù)所表示區(qū)域的第幾列,選擇3,表示選取對應(yīng)的值的第3列數(shù)據(jù)。
第四個(gè)參數(shù):這里要精確匹配,所以填0。
所以,公式為:=VLOOKUP(A2,Sheet2!$A$2:$C$8,3)
最后拖動句柄復(fù)制公式,結(jié)果如圖4、圖2所示。這時(shí)就會發(fā)現(xiàn)A3單元格的內(nèi)容在sheet2表中找不到,則D2單元格顯示#N/A。如果希望找不到數(shù)據(jù)對應(yīng)的單元格不顯示#N/A,而顯示0,則可以使用前面的兩個(gè)函數(shù),=IF(COUNTIF(Sheet2!A$2:C$8,A2),“在”,“不在”)。
用公式VLOOKUP(A2,Sheet2!$A$2:$C$8,3)代替“在”,用0代替“不在”。則公式變?yōu)椋?/p>
=IF(COUNTIF(Sheet2!A$2:C$8,A2),VLOOKUP(A2,Sheet2!$A$2:$C$8,3),0)如圖5所示,問題便可得到解決。
圖5 IF、COUNTIF和VLOOKUP函數(shù)綜合