標(biāo)簽: 雜談 |
用index和match函數(shù)實(shí)現(xiàn)大量數(shù)據(jù)的查詢
工作中,我們?cè)诒砀窭锊樵円粋€(gè)或幾個(gè)數(shù)據(jù),可以用"查找"-"替換"來實(shí)現(xiàn)。如果有大量數(shù)據(jù)需要我們查詢并輸出相關(guān)資料,逐個(gè)查詢將浪費(fèi)大量時(shí)間和精力。利用EXCEL自帶的index和match函數(shù)組合可以輕松完成任務(wù)。
舉例:現(xiàn)在有某單位組織的會(huì)員活動(dòng)的邀請(qǐng)人員名單,如圖1:
用CTRL+F當(dāng)然可以逐個(gè)查找,但是8000個(gè)足以令人暈倒.其實(shí),利用index和match函數(shù)可以方便完成這個(gè)任務(wù)。我們圖3工作簿的分表中C3單元格中輸入"=index(總表!A:H,match(分表!A3,總表!A:A,0),7)",D3單元格中輸入"=index(總表!A:H,match(分表!A3,總表!A:A,0),8)"。回車即出現(xiàn)對(duì)應(yīng)的工作單位和電話。
INDEX(array,row_num,column_num)返回?cái)?shù)組中指定單元格或單元格數(shù)組的數(shù)值
Array
本例中的Array就是"總表!A:H",列號(hào)column_num即是"工作單位"在數(shù)組中的列序號(hào) "7",行序號(hào)Row_num
行序號(hào)Row_num需要用函數(shù)match來描述,match返回在指定方式下與指定數(shù)值匹配的數(shù)組
Lookup_value
Lookup_array
Match_type
如果 match_type 為 1,函數(shù) MATCH 查找小于或等于 lookup_value 的最大數(shù)值。
如果 match_type 為 0,函數(shù) MATCH 查找等于 lookup_value 的第一個(gè)數(shù)
如果 match_type 為 -1,函數(shù) MATCH 查找大于或等于 lookup_value 的最小數(shù)值
具體到本例中,分表中C3單元格在總表中的對(duì)應(yīng)數(shù)據(jù)的行號(hào)就是會(huì)員編號(hào)200720217在總表中相同的會(huì)員編號(hào)所在的行號(hào)。
match(分表!A3,總表!A:A,0)就是返回分表A3單元格中數(shù)值在總表中對(duì)應(yīng)的相同會(huì)員編號(hào)的數(shù)值所在單元格的行號(hào)。就是總表中會(huì)員編號(hào)字段里值為200720217的單元格的行號(hào),"總表!A:A"就是指總表的會(huì)員編號(hào)字段的單元格范圍;"<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />0"表示查找等于200720217的第一個(gè)數(shù)值的行號(hào)。
該例中函數(shù)match(分表!A3,總表!A:A,0)代替了INDEX(array,row_num,column_num)中的參數(shù) row_num
綜上所述函數(shù)index(總表!A:H,match(分表!A3,總表!A:A,0),7)返回分表中A3單元格中的數(shù)值200720217在總表中"會(huì)員編號(hào)"字段中的相同數(shù)值的單元格的行號(hào)和工作單位字段列號(hào)對(duì)應(yīng)的單元格中的數(shù)值。
選中C3單元格雙擊其右下角的填充柄(鼠標(biāo)指針變?yōu)閷?shí)心黑"+"時(shí)雙擊),即把公式向下填充至最后一個(gè)記錄。此時(shí)分表中工作單位字段全部填充了相應(yīng)的數(shù)據(jù)。如圖3
同理 D4單元格中函數(shù)index(總表!A:H,match(分表!A3,總表!A:A,0),8)是返回對(duì)應(yīng)數(shù)值的電話。
選中C4單元格雙擊其右下角的填充柄(鼠標(biāo)指針變?yōu)閷?shí)心黑"+"時(shí)雙擊),即把公式向下填充至最后一個(gè)記錄。此時(shí)分表中電話字段全部填充了相應(yīng)的數(shù)據(jù)。
同樣的方法,如果需要調(diào)出其它字段如"籍貫"、"民族"等數(shù)據(jù),只需改變INDEX(array, MATCH(lookup_value,lookup_array,match_type),column_num)里的行序號(hào)參數(shù)column_num即可。
該方法中MATCH(lookup_value,lookup_array,match_type)里的lookup_value參數(shù)應(yīng)使用沒有重名的字段,該例中的會(huì)員編號(hào)沒有重復(fù),如是用人名做參數(shù),如人名有重復(fù),就只能返回對(duì)應(yīng)的行號(hào)最靠前的數(shù)據(jù)。
該方法可以節(jié)省大量時(shí)間,如果各位讀者遇到類似問題,均可使用此函數(shù)。該方法在微軟EXCEL2003中使用正常有效.
1
聯(lián)系客服