在筆者前期系列文章:Excel財務(wù)綜合應用之一:小型賬務(wù)系統(tǒng)中,涉及較多的函數(shù)、公式的綜合應用,現(xiàn)在我就來具體地講講它們的使用技巧。今天,我們一起來學習一下INDEX()、MATCH()函數(shù)的相結(jié)合的具體應用。如果你善于網(wǎng)絡(luò)搜索的話,也許能找到若干教程,我這里將結(jié)合實際應用案例來進一步說明。
首先,我們來看看函數(shù)的基本語法,Office幫助是這么說的:
INDEX 函數(shù)返回表格或區(qū)域中的值或值的引用。
INDEX(array, row_num, [column_num])
INDEX(reference, row_num, [column_num], [area_num])
MATCH 函數(shù)在 范圍 單元格中搜索特定的項,然后返回該項在此區(qū)域中的相對位置。例如,如果 A1:A3 區(qū)域中包含值 5、25 和 38,那么公式 =MATCH(25,A1:A3,0) 返回數(shù)字 2,因為 25 是該區(qū)域中的第二項。
MATCH(lookup_value, lookup_array, [match_type])
Match_type 行為
1 或省略:MATCH 查找小于或等于 lookup_value 的最大值。lookup_array 參數(shù)中的值必須以升序排序,例如:...-2, -1, 0, 1, 2, ..., A-Z, FALSE, TRUE。
0:MATCH 查找完全等于 lookup_value 的第一個值。lookup_array 參數(shù)中的值可按任何順序排列。
-1:MATCH 查找大于或等于 lookup_value 的最小值。lookup_array 參數(shù)中的值必須按降序排列,例如:TRUE, FALSE, Z-A, ...2, 1, 0, -1, -2, ... 等等。
通俗地講,通過指定行坐標、列坐標,確定一個值,也就是取出指定行、列交叉處的值。
在前面的小型賬務(wù)系統(tǒng)案例中,我們在設(shè)置憑證打印模板時,需要把指定的憑證數(shù)據(jù)從明細賬中提取出來,比如我們要把某號憑證的第一條分錄的摘要信息提取出來

具體說明
- 確定INDEX()函數(shù)引用的數(shù)據(jù)區(qū)域,如上圖所示為明細賬!$A$2:$S$611,這里根據(jù)具體情況來設(shè)置,簡單的來講,可以設(shè)置一個相對較大的區(qū)域,只要超過實際的分錄條數(shù)就可以了。當然也可以定義一個動態(tài)名稱,隨著明細賬記錄的增加而變動,那樣顯得“專業(yè)”一點,以后再講動態(tài)名稱的設(shè)置與應用。
- 確定行坐標,比如如上圖所示12月,記賬-004號憑證,第一條分錄,如何確定?我們在明細賬中設(shè)置了字段PrindKey,它是將每條分錄的年、月、憑證號、分錄號連接起來,得到一個不重復的關(guān)鍵字,我們可以去數(shù)一數(shù),看上圖所示的分錄在明細賬數(shù)據(jù)區(qū)域是第N行,這個N就作為INDEX()函數(shù)的第一個參數(shù)。當然,我們不會真的去數(shù),我們就會用到MATCH()函數(shù)來取得有關(guān)字段的位置值。
在憑證打印模板中,年、月、日、憑證號都有了,還差一個分錄號,怎么辦呢?其實,所謂分錄號就是一個序號,每張憑證的所有分錄編號從1開始,順序編號到該憑證的最后一條分錄為止。我們使用ROW()函數(shù)來產(chǎn)生編號,參數(shù)為$B1其他單元格引用也可以,只要從第一行開始就行。 - 確定列坐標,同樣是用MATCH()函數(shù),根據(jù)憑證打印模板中第5行所列示的關(guān)鍵字來查找定位。
- 我們在B8單元格中寫好公式,INDEX(......),然后再利用ISERROR()函數(shù)來去除錯誤值。
- 將公式直接復制到相關(guān)單元格。
The End.