手把手教你用 excel VLOOKUP 函數來進行數據填充

前言

雖然作爲一枚程序員,但是對 excel 卻不咋會用。

處於對“別的程序員”強烈的不信任感,如果有能夠自己寫代碼來處理的任務,一般都不喜歡花時間去理解別人提供的 api。

所以以前碰到需要處理 Excel 數據的時候,多是直接上 python 或者 nodejs,自己編程來處理。

但是在某些情形下,這樣做不一定是最快的方式。

比如,最近我就遇到一個需要填充數據的問題,稍微研究下 vlookup 函數,發現確實比自己編程要方便些。

閒話不多說,讓我們快速進入正題吧。

vlookup 函數定義

先讓我們來看一下,vlookup 函數的含義吧。

下面是我引自微軟官網的一段話:

Use VLOOKUP when you need to find things in a table or a range by row. For example, look up a price of an automotive part by the part number, or find an employee name based on their employee ID.
In its simplest form, the VLOOKUP function says:
=VLOOKUP(What you want to look up, where you want to look for it, the column number in the range containing the value to return, return an Approximate or Exact match – indicated as 1/TRUE, or 0/FALSE).

簡單的翻譯一下:

當需要在表中或按行查找內容時,請使用VLOOKUP。例如,通過零件編號查找汽車零件的價格,或根據員工的ID查找員工的姓名。
VLOOKUP函數最簡單的形式含義:
= VLOOKUP(要查找的內容,要查找的位置,包含要返回的值的範圍內的列號,返回近似或完全匹配)。

這樣單純的看 api,可能會感覺雲裏霧裏的,沒關係,接下來我會詳細的深入剖析,讓你真正的掌握它的用法。

情景假設

現在假設一個使用場景,方便我們來理解這個函數的使用途徑。

假設我是一名班主任,我負責的班級最近各科進行了一次摸底測驗,我想彙總下各科的考試成績。

下面是我班裏的學生:

image.png

我由於並帶課,所以,我必須得從其他各科任課老師那兒得到各科分數的統計數據。

當然,對於我們收集各科成績的需求,我們選擇採用在線文檔來收集數據當然是比較好的。但是在線文檔也有缺陷,比如數據會被第三者篡改、數據會相互泄漏等等問題。

因此,我們現在假設,我們會從各科老師那裏獲得一個對應科目成績的 excel 表格。

比如語文老師,會提供一個下面的表格給我:

image.png

數學老師和英語老師等等也會提供類似的數據給我。

現在的問題是,我們該怎麼將各科老師提供給我們的分數,整合,填充到我們的綜合統計表格中去呢?

幾種方案

現在要整合這個統計表格,其實有以下幾種方案。

1. 手動單個複製

手動單個去複製,即對着名字學號一個個手動複製各科成績。這無疑是一種最古老最直接的方式,但是缺點也很明顯,太慢、太枯燥,而且還很容易看錯。

2. 批量複製

批量複製較之上一種方案,稍微好一點。我們可以將每張表格的學號列,進行篩選,按照學號升序或者降序排序,然後將成績一列,一下子複製到我們的的統計表格上。

但是這個方案有侷限性,只有在所有表格中的學號都是吻合的,沒有缺失或者富餘的情況才能保證數據的正確性。

否則一旦出錯了,查找起來就太困難了。

總之,這個肯定不是最佳的選擇。

3. vlookup 函數

剛看前面的 api 解釋,你可能不太好理解該怎麼用,下面我就手把手的教你,應該怎麼用 vlookup 來填充表格數據。

爲了簡單起見,我在一個 excel 文件裏面新建四個工作表:

image.png

當然,如果你有多個 Excel 表格,操作也是大同小異的。

語文成績是這樣的:

image.png

數學成績是這樣的:
image.png

英語成績是這樣的:
image.png

統計表格是這樣的:

image.png

那麼,我們該怎麼填充各科的分數呢?

先看看我下面錄製的一個小的操作視頻,熟悉一下使用過程:

屏幕錄製2020-04-0413.38.25.mp4 (1.24MB)

主要分爲以下幾個步驟:

  1. 在 c2 一欄開始寫我們的 vlookup 函數
  2. 函數的第一個參數爲我們需要在某個範圍裏面精確的匹配到的值在 excel 表格中的位置,必須是唯一的,比如 id 或者學號等等,注意不能用名字,因爲中國的人名,有大概率是會重複的。
  3. 第二個參數,填的是查找的數據範圍,就像我上面視頻中的例子一樣,要找英語成績,那麼我填的就是英語成績表中的從A到C這三列。
  4. 第三個參數爲我們需要填充的數據在查找的數據範圍中的第幾列,比如我這個表中,第三列表示的是成績,那麼我就填3。
  5. 第四個參數,可以填 false 或 true,false 表示精確匹配,true 表示模糊匹配,精確匹配一般匹配到的數據會準確無誤,如果匹配不到就會用 #N/A 表示。
  6. 填好以後回車執行,然後雙擊目標單元格的右下角,就會自動往下,將整列數據都填充好了。

當然上面的話,還是不夠人性化,也許你跟着上面的操作視頻和我上面大段的講解,能夠對我這個例子整出來,但是換個場景,你又不知道該怎麼辦了。

那麼接下來,我就用更通俗易懂的話,剖析下,這麼填充了以後,爲什麼就能自動填充好數據呢。

首先,我們第一個參數,選擇的是學號這一列裏的某一個,當然這裏不能填數據本身,而是需要填單元格的代號,即 A2、A3 等等。後面在程序執行查找的時候,會拿到單元格里的值,去進行對比查找。
image.png

我們第二個參數,可以看作是一個區域,這個區域裏的需要有一行能夠匹配到我們的第一個參數指代的單元格里面的學號。
image.png

然後緊接着第三個參數就派上用場了,我們通過第二個參數,找到的這一行數據,在從裏面取出第三個參數指代的單元格中的數據,可以看到我們數據中成績都在第三列,所以我們都填的3。

第四個數據,代表是否精確匹配。一般我們用來定位數據的時候,需要採用 false,也就是精確匹配。模糊匹配的作用是,他會從上往下找,找到需要匹配的值在某一個範圍內。

比如,我現在有三個標準,0-59 是不及格,60-89 是一般,90 以上是優秀,現在我想給英語成績做個評測。

如下圖,我需要達到的的效果,用模糊匹配就能實現。

image.png

需要注意的是,這個範圍必須要填 0、60、90 這樣的下限值,否則不能達到理想的效果。

而且從上到下的順序必須是遞增的,否則也達不到想要的效果。

後記

不知道你是否理解了 vlookup 函數的使用方式和使用場景呢,如果一時還無法理解,多找幾個小例子練習下,相信你使用起來也會遊刃有餘的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章