在excel中劝评,除了vlookup函數常用來查找引用外旁壮,index函數和match函數組合也可用來做查找引用工作偶宫,這組函數有效彌補了vlookup函數查找目標不在查找范圍數據首列的缺陷哥牍。
圖一:
工作:從《申報單位》中找到《成功單位》的“所在鄉(xiāng)鎮(zhèn)”和“所屬科室”毕泌,填入《成功單位》“所在鄉(xiāng)鎮(zhèn)”和“所屬科室”列。
Index函數
用途:返回表格或區(qū)域中的數值或對數值的引用嗅辣。
Index有兩種形式:數組和引用撼泛。數組形式通常返回數值或數值數組;引用形式通常返回引用澡谭。
語法:index(數據區(qū)域愿题,第幾行,第幾列)蛙奖。
解析:index函數就是從數據區(qū)域中潘酗,返回第幾行第幾列的單元格中的數值。就好比外永,在文件交換中心崎脉,有一個由許多方方正正一般大小的格子組成的文件柜,每個單位都擁有自己的一個專屬小格子伯顶,例如我們XX局的文件在第2行囚灼,第3列的柜子里,我要拿文件的話就是干了index的活兒祭衩。具體到上面的圖一工作就是從《申報單位》找到我們要的數值灶体。怎樣告訴index我們要找的數據在哪一行哪一列呢?讓match來詳說具體位置吧掐暮。
Match函數
用途:返回在指定方式下與指定數值匹配的數組中元素的相應位置蝎抽。它查找匹配元素的位置,而非元素本身。
語法:match(查找目標值樟结,查找數據表养交,匹配類型)
解析:查找目標值為需要在數據表中查找的數值,它可以是數值(或數字瓢宦、文本或邏輯值)碎连、對數字、文本或邏輯值的單元格引用驮履,實際工作中通常為單元格引用鱼辙。
查找數據表是可能包含所要查找的數值的連續(xù)單元格區(qū)域,可以是數組或數組引用玫镐,通常為一行或一列數據倒戏。
匹配類型為數字-1、0或1恐似,說明excel如何在查找數據表中查找目標值杜跷。如果匹配類型為1,函數match查找小于或等于查找目標值的最大數值蹂喻;如果匹配類型為0葱椭,函數match查找等于查找目標值的第一個數值;如果匹配類型為-1口四,函數match查找大于或等于查找目標值的最小數值。
具體到圖例秦陋,第一個單位詳細名稱“濟寧中農生物技術有限公司”在《申報單位》的第幾行蔓彩?計算公式(單元格L3中)為=MATCH(H3,B3:B31,0),返回其在第16行驳概。
圖二:
“所在鄉(xiāng)鎮(zhèn)”為在《申報單位》表列標題的第幾列赤嚼?計算公式(單元格L2)為=MATCH(J2,B2:E2,0),第一列為“企業(yè)名稱”顺又,第二列為“行業(yè)類別”更卒,第三列為“所在鄉(xiāng)鎮(zhèn)”,第四列為“所屬科室”稚照。
Match函數單獨使用其實沒有什么用蹂空,它的存在主要是為了給他人做中介。常出現(xiàn)在Vlookup函數和Index函數中果录,以Index尤甚上枕。我們現(xiàn)在就來看看match函數作為中介人如何給index函數介紹對象的吧。
圖四:
在圖四中弱恒,我們可以看到在J3單元格中輸入index函數和match函數的組合公式:=INDEX($B$3:$E$31,MATCH($H3,$B$3:$B$31,0),MATCH(J$2,$B$2:$E$2,0))
解析:
$B$3:$E$31為在其中查找返回數值的數據區(qū)域辨萍,相當于文件交換中心的文件柜;
MATCH($H3,$B$3:$B$31,0)為“濟寧中農生物技術有限公司”在《申報單位》表中的第幾行返弹;
MATCH(J$2,$B$2:$E$2,0)“所在鄉(xiāng)鎮(zhèn)”為在《申報單位》表列標題的第幾列锈玉;
兩個Match函數分別指明了查找目標值在第幾行爪飘,第幾列,相當于手指著文件柜拉背,告訴index悦施,“Hi,伙計去团,在這個格子里有你要的文件抡诞。”
Index函數公式中土陪,第二個參數設定行昼汗,所以絕對引用(鎖定)列;第三個參數設定列鬼雀,所以絕對引用(鎖定)行顷窒,即“要行鎖列,要列鎖行”源哩。
把公式復制向右向下復制填充鞋吉,得到下圖五。
圖五:
圖五中我們可以看到有錯誤值#N/A励烦。原因是《申報單位》和《成功單位》中的詳細名稱有略微不同谓着,目測有的帶(變更),故需用到模糊匹配坛掠。我們在J16單元格中輸入修正公式=INDEX($B$3:$E$31,MATCH("*"&$H16&"*",$B$3:$B$31,0),MATCH(J$2,$B$2:$E$2,0))
圖六:
解析:我們對index函數中的第二個參數赊锚,match函數的查找目標值進行模糊處理。
查找目標值"*"&$H16&"*"包含通配符“*”屉栓。Match函數第一個參數允許使用通配符“*”來表示包含的意思舷蒲,把*放在字符的兩邊,即“*”&字符&“*”友多,其中&是對字符進行連接的意思牲平。
我們把《申報單位》的詳細名稱列移動到表格的最后一列,結果如下圖七域滥,對查找數據沒有任何影響纵柿,這就是說,我們不必要像vlookup函數要求的那樣查找目標值必須在首列骗绕。
圖七
現(xiàn)在我們來看看match和Vlookup函數組合如何實現(xiàn)查找引用功能的藐窄。match函數在Vlookup中主要是用于Vlookup的第三個參數,也就是確定列序號酬土。請看下圖八荆忍。J3單元格中的公式為=VLOOKUP($H3,$B$3:$E$31,MATCH(J$2,$B$2:$E$2,0),0)。
圖八:
但是當我們把《申報單位》的“企業(yè)名稱”列移動到表格的最后一列時,就會出現(xiàn)錯誤:
圖九