一文搞懂VLOOKUP、INDEX、MATCH函数
最近,在學習數據分析方向的東西,眾所周知,Excel是數據分析所不可或缺的工具,由于過往并沒有對Excel進行過深入研究,因此當首次接觸到Excel中的函數時,不可避免地被其中一些函數的邏輯繞得有些暈,故在經過自己練習理清后,考慮到自己看不進生硬教程的尿性,決定將自己的理解用更加生動風趣的方式記錄下來。
?
(本文中所用到的資料均來自b站UP主戴戴戴師兄)
函數說明
以下語法均來自Microsoft Excel 2022。
VLOOKUP
應用場景
當要通過某一內容去查找與之匹配的另一內容時,會使用到VLOOKUP函數,這么說可能有些難以理解,接下來,我們來舉個例子。
當你手上有這樣一張表時,你想要通過其門店ID去獲取到相應的門店名稱,此時就可以用上VLOOKUP函數了。
那么,究竟要怎樣才能實現想要的結果呢?下面,我們先來掰扯掰扯VLOOKUP的語法結構。
語法結構
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])參數說明
- lookup_value:要查找的內容。
- table_array:要查找的位置。
- col_index_num:包含要返回的值的范圍內的列號。
- [range_lookup]:返回近似或精確匹配,可選擇的兩個值為:1/TRUE(近似匹配),0/FALSE(精確匹配)。
當然,這些東西在Excel的幫助中就能找到了,要是就這么列在這里,或許要不了兩天,就連我自己都會忘記到底應該填些什么東西吧?所以,為了幫助理解,我將結合上面的例子來對各參數進行解釋。
函數使用
首先,我們的目的是根據已有數據將下面這張表格填滿。
當然,你也可以不動腦子地逐條到原數據表里去查找,然后復制粘貼,那么此教程或許對你就派不上用場了,點擊網頁右上角的小×可以助力你快速離開此頁面(bushi)。
但是,當所要查找的項越來越多時,這個笨法子顯然就不夠用了。
那么,問題來了,要怎樣才能快速精確地獲取到我們想要的信息呢?
相信用過Excel的人都知道,Excel有個相當方便的拖動功能,只需要將鼠標挪到表格右下角,待鼠標變為黑色十字時,即可將此表格的樣式復刻到后續列表中。
此處之所以說是復刻,是因為Excel的拖動不但可以完成復雜的迭代功能,也可以去選擇簡單的復制功能,拖動功能的具體細節在此就不過多贅述,下面,我們回到問題本身上來。
可以看到,在原表中,門店ID和門店名稱是一一對應的關系,如果可以到原表的門店ID中去找到我們所要查找的門店ID,然后再自動返回其相應的門店名稱,不就能實現我們所要的效果了嗎?
VLOOKUP函數,所做的就是這么一回事兒,由此也不難理解各個參數的具體指向了。
- lookup_value:在這里我們要找的是含空白單元格的表格中的門店ID,即空白單元格左邊的那個單元格里的內容。
- table_array:這個參數則要填寫你查找的范圍,比如這個案例中,就是原表數據,你可以只框選我標紅的這兩列,當然也可以直接將整個原表框起來,但需要注意的是,你選擇的查找范圍必須包含門店ID和門店名稱這兩列,即,如果這兩列中間還有其他列,那么你需要將他們全部包含在內,且table_array的選擇將影響到第三個參數的填寫。
- col_index_num:根據你上一個參數所選擇的范圍,去數門店名稱所處的列數,即,如果你選擇了標紅的這兩列,那么門店名稱是第二列,填2就可以了,如果你選擇的是整個列表,那么門店名稱是第五列(圖上并沒有截全,門店名稱的的列號是E,在原表中并非第三列),這里就要填5了。
- [range_lookup]:關于這個地方,無腦填0即可,因為Excel的近似匹配,它或許跟你所想象的近似匹配不太一樣(如實在好奇,可以自行舉例實驗或者到文末連接中觀看戴師兄的舉例)。
那么,到此,我們就已經完成了四個參數的選取了,綜合以上信息,第一個空白處要填寫的內容就已經可以明確了:
=VLOOKUP(B96,'拌客源數據1-8月'!D:E,2,0)INDEX 與 MATCH
應用場景
經過對VLOOKUP函數的講解,相信看到這樣一張表格后,大家已經知道該如何去填寫門店ID列的空白了吧?
那么恭喜你,已經成功闖過了VLOOKUP這道關卡,但是,在真正的實際應用場景中,我們所需要的表格顯然并不可能這么簡單,當上述表格變成了下面這樣,又該如何去填寫呢?
或許有人會說,可以對每一列去做VLOOKUP(因為原表中的內容并沒有規矩到可以讓我們任意擺布,因此通過一列的填寫去拖動實現整個表格并不現實,所以這里說是對每一列做VLOOKUP),你當然可以這么做,但是,有沒有更加簡單的方式,可以像我們之前所做的那樣,只填寫一格內容,然后通過拖動就填充滿整個列表呢?
既然這一板塊是在講INDEX函數與MATCH函數,那么顯而易見的,這兩位正是應對這個場合的Mr.Right了!
至于為什么是兩個函數結合起來,我打個比方,你應該就能明白了。
當你在尋找某樣東西的時候,總共有幾個步驟?
答:兩步。
1、知道東西的位置在哪。
2、到那個位置上去取。
而INDEX函數與MATCH函數則在這個過程中分別扮演者取物與定位的作用。
但是,即便知道了他們各自的作用,要如何使用他們去達到我們的目的呢?那就要勞煩諸位繼續聽我絮絮叨叨了。
語法結構
-- INDEX =INDEX(array, row_num, [column_num]) -- MATCH = MATCH(lookup_value, lookup_array, [match_type])參數說明
INDEX函數
- array:單元格區域或數組常量。
- row_num:選擇數組中的某行,函數從該行返回數值。
- [column_num]:選擇數組中的某列,函數從該列返回數值。
MATCH函數
- lookup_value:要在lookup_array中匹配的值。
- lookup_array:要搜索的單元格區域(某一列或某一行)。
- [match_lookup]:返回近似或精確匹配,可選擇的兩個值為:1/TRUE(近似匹配),0/FALSE(精確匹配)。
同樣,這些東西也幾乎是從Excel的幫助中扒拉過來的,只能說,解釋了,但沒完全解釋,所以,接下來,我將同樣使用一個案列來解釋這兩個函數的使用方法。
函數使用
到這里,相信你已經知道了INDEX函數與MATCH函數分別擔任著取物和定位的作用了(如果不知道,請拉回到應用場景的部分再次閱讀),那么對于已經掌握了這兩個函數本質的你來說,接下來的說明,就不過是水到渠成,信手拈來了。
定位(MATCH)
首先,在Excel中單元格是通過行號和列號來定位的,這一點想必大家都知道。
那么恭喜你,你已經成功掌握MATCH函數了!
為什么這么說?
答案很簡單,MATCH函數中我們所陌生的參數只有兩個,一個是lookup_value,另一個是lookup_array,而lookup_value就是你正在尋找的那個東西,至于lookup_array,是你所記得的上次見過它的地方,第三個參數與VLOOKUP函數中的[range_lookup]類似,想必此刻已經是你的老朋友了吧,在此就不再過多論述了。
既然已經明確了要找什么,也知道了它的所處范圍,那么只需要將這些都填入到MATCH函數中,它就會自動去為你定位了,因此,MATCH函數最終會給出一個具體的數值,而這個數值則是你所尋找的東西在那一行或那一列中順位數下來的位置。
取物(INDEX)
當你掌握了東西的具體位置后,接下來要做的,就是到它所在的位置去取到它了,而這個過程,即便我不說,諸位都應該無比地清晰了吧。
因此,對于INDEX函數,你只需要告訴他要到哪個范圍(array)里的哪個坐標(row_num, [column_num])下去找,它就能很快找到你所需要的東西了!是不是很簡單?
案例說明
自此,我們已經可以確定兩個函數中的參數具體要填些什么了,下面將以門店ID為例,對每個參數進行說明:
MATCH:
- lookup_value:對于門店ID下的某一空白單元格,它所要尋找的是它左邊單元格中的內容,因此,這里選擇它左邊那格即可。
- lookup_array:由于MATCH返回的值是相對于你所設定的范圍而定的,為了方便后續INDEX函數的取物,這里推薦直接選取整個原表即可,當然,你也可以相應地去嘗試設置不同的范圍,不過要記得,一定要包含你所尋找的東西在內呀,畢竟,你也不想提前遇到“我記得上次明明放在客廳了啊,怎么會在餐廳里呢”這樣的年紀大了才會出現的記憶混亂吧?
- [match_lookup]:這里的填寫同[range_lookup],就不在贅述了。
INDEX:
- array:為了方便以后及拖動功能的使用,這里推薦直接選取整個原表,當然,你也可以在包含你所需要的信息和你已有的物件范圍內去進行查找,不過相應的,需要更改后面兩個參數的值。
- row_num:我們實際上想要取得的物件其實是門店ID,但我們現在手上只有平臺門店名稱的位置,那么要如何去定位到門店ID的行和列呢?聰明如你想必已經猜到了,由于MATCH一次只會返回一個值,而平臺門店名稱所在行,正對應著其相應的門店ID所在行,因此,這個參數需要通過MATCH函數去定位平臺門店名稱去獲取。
- [column_num]:至于門店ID所在列,不正好就是門店ID這個字段在整個表頭中所在的列嗎?同樣,通過MATCH函數,我們可以精確地獲取到這個參數所需要填寫的值
到此,我們就已經完成了兩個函數各自參數的選取了,綜合以上信息,第一個空白處要填寫的內容也就可以明確了:
=INDEX('拌客源數據1-8月'!$A:$X,MATCH($B112,'拌客源數據1-8月'!$I:$I,0),MATCH(D$111,'拌客源數據1-8月'!$1:$1,0))補充
- 由于MATCH函數一次只能尋找一個物體,因此,在選擇第一個參數時,只能選中某一個單元格,即便是合并單元格的內容,它也是無法識別的,這一點需要特別注意。
- 關于最終填寫內容中的'$'符號說明:
考慮到后續將對單元格進行拖動,為了某些固定的范圍不在拖動中被改變,可以用F4對其需要保持不變的行列進行鎖定,這里就不具體闡述鎖定的用法了,感興趣的可以到參考教程中觀看戴師兄的說明。
參考教程
【全網最良心的【數據分析自學課程】它來了!必備的Excel/SQL/Tableau/Python/數據黑話/產品|競品|市場分析報告制作、數據分析啟蒙免費課程教程】
總結
以上是生活随笔為你收集整理的一文搞懂VLOOKUP、INDEX、MATCH函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 解析S2B2C模式的典型特征,应用S2B
- 下一篇: 谱尼又一子公司获批成为化妆品人体安全性和