首先,該問(wèn)題有哇眾取寵之嫌,在日常工作中,因?yàn)閂Lookup函數(shù)更加簡(jiǎn)單、易用、直接,實(shí)際上VLookup函數(shù)的應(yīng)用廣泛程度是Index Match函數(shù)組合的10倍。 說(shuō)Index Match函數(shù)比VLOOKUP函數(shù)好用,是因?yàn)镮ndex Match組合比單純使用VLookup函數(shù)更加靈活,功能更加強(qiáng)大,而且在多列數(shù)據(jù)匹配查找時(shí)能通過(guò)合適的方法來(lái)改善計(jì)算效率。 關(guān)于這兩個(gè)函數(shù)怎么使用,前面的答者給出了非常詳細(xì)的描述,在此不再贅述。以下我從兩個(gè)方面來(lái)進(jìn)一步說(shuō)明Index Match函數(shù)組合比VLookup函數(shù)好用的地方。 一、結(jié)合“表格”(超級(jí)表),跨表引用巨輕松——那些你曾經(jīng)看不懂的公式,原來(lái)是這么好用!大海 Excel到PowerBI很多時(shí)候,我們?cè)趯?xiě)公式時(shí),都需要進(jìn)行跨表的數(shù)據(jù)引用,比如要通過(guò)VLookup函數(shù)引用其他表的數(shù)據(jù)參與計(jì)算,或做匹配等,經(jīng)常要拿著鼠標(biāo)到處找需要引用的那一列或那個(gè)區(qū)域,尤其當(dāng)數(shù)據(jù)表很大、列數(shù)很多的時(shí)候,找起來(lái)更是費(fèi)勁,但自從你將普通的表轉(zhuǎn)成了'表格'(超級(jí)表:見(jiàn)文章《用了Excel這么久,還有辣么多人不知道“表格”!》),你就輕松了——因?yàn)槟憧梢灾苯釉趯?xiě)公式的時(shí)候得到相應(yīng)的提示! 以下將通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)見(jiàn)證'奇跡的時(shí)刻'。 只要在成績(jī)表的右邊,標(biāo)題行上輸入'學(xué)生姓名',然后回車(chē),Excel將自動(dòng)生成一個(gè)新的列,如下圖所示: 接下來(lái)我們開(kāi)始輸入公式'=index(stu……' See?student表隨著公式的輸入出來(lái)了! Excel就是這么牛B,直接給你提示! 此時(shí),如果還有多個(gè)表的話(huà),我們可以通過(guò)鍵盤(pán)的上下箭頭進(jìn)行表的選擇,當(dāng)選到我們需要的表時(shí),按Tab鍵即選中該表進(jìn)入公式。 引用表后,我們還要指定要引用的列,這時(shí),我們?cè)诒砻竺孑斎?['——真正見(jiàn)證奇跡的時(shí)候!student表中所有的列名都出來(lái)了! 此時(shí),同樣地,如果列很多的話(huà),我們可以直接輸列名,或者可以通過(guò)鍵盤(pán)的上下箭頭進(jìn)行列的選擇,當(dāng)選到我們需要的列時(shí),按Tab鍵即選中該列進(jìn)入公式,然后輸入']'完成列的引用。 為完成'學(xué)生姓名'的提取,我們繼續(xù),到match的時(shí)候,我們的lookup_value可是要用當(dāng)前行的值,怎么辦?——當(dāng)然沒(méi)問(wèn)題,在'['后再輸入'@',提示還在!是的,在Excel的'表格'中,對(duì)'[列名]'表示對(duì)整列的引用,'[@列名]'表示對(duì)該列當(dāng)前行的引用,如下圖所示: 公式全部輸入完畢后,回車(chē),該公式將自動(dòng)填充到該列的所有單元格中,不需要再動(dòng)鼠標(biāo)了——就是這么方便!如下圖所示: 至此,通過(guò)在公式輸入時(shí)得到的提示,快速地實(shí)現(xiàn)了跨表的引用,當(dāng)你開(kāi)始習(xí)慣了這種輸入的方法后,你將會(huì)發(fā)現(xiàn)原來(lái)通過(guò)鼠標(biāo)到處找數(shù)據(jù)的過(guò)程是多么的痛苦,尤其是表很多、列很多的時(shí)候! 二、用Index Match函數(shù)提升多列大量數(shù)據(jù)匹配查詢(xún)效率VLookup是Excel中進(jìn)行數(shù)據(jù)匹配查詢(xún)用得最廣泛的函數(shù),但是,隨著企業(yè)數(shù)據(jù)量的不斷增加,分析需求越來(lái)越復(fù)雜,越來(lái)越多的朋友明顯感覺(jué)到VLookup函數(shù)在進(jìn)行批量性的數(shù)據(jù)匹配過(guò)程中出現(xiàn)的卡頓問(wèn)題也越來(lái)越嚴(yán)重。 那么,在數(shù)據(jù)量較大,需要批量進(jìn)行數(shù)據(jù)匹配查找的情況下,是否有辦法進(jìn)行適當(dāng)?shù)母纳?,以提高?shù)據(jù)的匹配查找效率呢? 以下用一個(gè)例子,分別對(duì)比了四種常用的數(shù)據(jù)匹配查找的方法,并在借鑒PowerQuery的合并查詢(xún)思路的基礎(chǔ)上,提出一個(gè)簡(jiǎn)單的公式改進(jìn)思路,供大家參考。 一、測(cè)試數(shù)據(jù) 本次測(cè)試涉及數(shù)據(jù)概況及要求如下: 如下圖所示: 二、4種數(shù)據(jù)匹配查找方法 1、VLookup函數(shù),按常用全列匹配公式寫(xiě)法如下圖所示: 2、Index Match函數(shù),按常用全列匹配公式寫(xiě)法如下圖所示: 3、Lookup函數(shù),按常用全列匹配公式寫(xiě)法如下圖所示: 4、Power Query合并查詢(xún),按常規(guī)表間合并操作如下圖所示: 三、4種方法數(shù)據(jù)匹配查找方法用時(shí)對(duì)比 經(jīng)過(guò)分別對(duì)以上4中方法單獨(dú)執(zhí)行多列同時(shí)填充(Power Query數(shù)據(jù)合并法單獨(dú)執(zhí)行數(shù)據(jù)刷新)并計(jì)算時(shí)間,結(jié)果如下表所示: 從運(yùn)行用時(shí)來(lái)看: 四、對(duì)公式法的改進(jìn) 我們?cè)谇懊嬗肰Lookup、Index Match寫(xiě)公式的思路則是對(duì)每一個(gè)需要取的值,都是一次單獨(dú)的匹配和單獨(dú)的取值。也就是說(shuō),每次為了查找到一個(gè)數(shù)據(jù),都需要從訂單表的2萬(wàn)多條數(shù)據(jù)里搜索一遍,這種效率自然會(huì)很低。
那么,如果我們?cè)诠街锌梢宰龅街黄ヅ湟淮?,后面所需要取的?shù)據(jù)都跟著這次匹配的結(jié)果而直接得到,那么,效率是否會(huì)大有改善呢? 再回頭看Index Match結(jié)合的公式,其中,Match函數(shù)用于確定所需要查找內(nèi)容的位置,而Index用于提取該位置相應(yīng)的值! 那么,如果我們只用Match一次把位置先找出來(lái),后面所有的列都直接用這個(gè)位置去提取相應(yīng)的值,會(huì)怎樣? 于是,首先用Match函數(shù)構(gòu)建一個(gè)輔助列,用于獲取匹配位置,如下圖所示: 然后,通過(guò)Index函數(shù),直接根據(jù)輔助列的位置從訂單表里讀取相應(yīng)的數(shù)據(jù),如下圖所示: 經(jīng)執(zhí)行公式的批量填充,結(jié)果: 五、結(jié)論 在批量性匹配查找多列數(shù)據(jù)的情況下,通過(guò)對(duì)Index和Match函數(shù)的分解使用,先單獨(dú)獲取所需要匹配數(shù)據(jù)的位置信息,然后再根據(jù)位置信息提取所需多列的數(shù)據(jù),效率明顯提升,所需匹配提取的列數(shù)越多,效率提升越明顯。 當(dāng)然,使用公式的方法,即使在一定程度上進(jìn)行改進(jìn),和Power Query相比仍然有很大的差距。因此,在數(shù)據(jù)量較大,數(shù)據(jù)處理較為復(fù)雜的情況下,建議使用Power Query來(lái)進(jìn)行。
以上提供了Index Match函數(shù)結(jié)合超級(jí)表以及分拆使用提高效率的兩種應(yīng)用方法,在很大程度上體現(xiàn)了Index Match比VLookup函數(shù)好用的地方,您可以根據(jù)實(shí)際情況選擇使用。
私信“材料”直接下載系列訓(xùn)練材料】【數(shù)據(jù)透視基礎(chǔ)精選10篇】 【Power Query入門(mén)到實(shí)戰(zhàn)80篇】 【Power Pivot 基礎(chǔ)精選15篇】
我是大海,微軟認(rèn)證Excel專(zhuān)家,企業(yè)簽約Power BI顧問(wèn)讓我們一起學(xué)習(xí),共同進(jìn)步!【您的關(guān)注和轉(zhuǎn)發(fā)鑄就我前行的動(dòng)力!謝謝支持!】
|