Vlookup函數除了查詢引用,它的VBA使用你會嗎

2020-12-08 螞蟻可可V課堂

在工作中,我們在處理大量數據時,會有這樣一種需求,即查詢某個人或某個商品的一個信息。如果我們通過滾動用肉眼去看難免非常的痛苦,畢竟數據太多,那麼聰明的人是怎麼做的呢?對,就是用vlookup函數來實現。本章就圍繞vlookup的查詢引用以及通過VBA返回多個值的方法進行講解。

01基礎知識

Vlookup函數在excel中稱之為垂直查詢函數,即在數據表中從上往下查詢滿足條件的值。

函數格式為:VLOOKUP(lookup_valuetable_arraycol_index_num[range_lookup])

中文說明:VLOOKUP (你想要查找的內容,要查找的單元格區域,要返回的值的區域中的列號,查找方式)。

其中具體參數說明:

你想要查找的內容(Lookup_value)是必須的參數,指的是要在表格或區域的第1列中搜索到的值。

要查找的單元格區域(table_array)是必須的參數。即要查找的數據所在的單元格區域,單元格區域的第1列中的值就是你要查找的內容要搜索的值。

要返回的值的區域中的列號(col_index_num)也是必須的參數。指的是返回數據所在的列號。列號為1時,返回單元格區域中第1 列的值;列號為2時,返回單元格區域中第2列的值,以此類推。如果列號參數小於1,則VLOOKUP返回錯誤值#VALUE!;大於單元格區域的列數,則VLOOKUP返回錯誤值#REF!

查找方式(range_lookup)為可選的參數。是一個邏輯值,取值為1/TURE或0/FALSE,指定希望VLOOKUP查找精確匹配值還是近似匹配值;如果查找方式為TRUE或被省略,則返回近似匹配值。如果找不到精確匹配值,則返回小於你想要查找的內容的最大值。如果查找方式參數為FALSE,VLOOKUP將只查找精確匹配值。如果單元格區域的第1列中有兩個或更多值與你想要查找的內容匹配,則使用第一個找到的值。如果找不到精確匹配的值,則返回錯誤值#N/A。

比如我們要查詢姓名為張山的性別就可以這樣寫:=vlookup(「張山」,A2:D6,2,1);vlookup函數就會在單元格區域中的第一列找到張山,然後去返回第二列中性別的值。到這裡vlookup查詢的理論就講完了,但是如果細心的同學會發現,我們的vlookup一次只能返回查找的一個值,如果我們要把張山的性別、學歷、是否畢業同時都查詢出來呢,這時我想很多同學都會想到,使用多個vlookup函數就可以了。但是如果要查的值很多呢?那麼多次書寫vlookup函數是不是就非常麻煩呢。好了,接下來就給大家介紹通過vlookup函數實現多列值的返回查詢。

02Vlookup函數的VBA操作

使用VBA來操作vlookup函數與在excel中一樣,即參數相同、功能相同、用法相同,但是唯一不同的是通過VBA能夠簡化VBA的書寫,同時實現更強大的功能。要通過VBA操作vlookup函數就必須得使用Application.WorksheetFunction屬性來操作excel常用函數。由於在剛才的例子中我們要查詢性別、學歷、是否畢業三個值,因此我們的vlookup函數要執行三次循環。為了簡化代碼書寫,第一步,我們先用Set Sheet1 = Application.ThisWorkbook.Worksheets("sheet1")給查詢表重命名一個變量為sheet1,然後通過sheet1去調用cells和range數據去指定查詢值單元格、查詢單元格區域以及返回數據存儲的單元格。

第二步,使用for循環去循環執行查詢,由於我們需要返回的值是3列,且是從第二列開始的,因此循環變量從2開始,循環三次結束,所以如果我麼返回的值比較多,就根據返回值的列數來控制for循環。第三步,使用Application.WorksheetFunction.VLookup(Sheet1.Cells(1, 8), Sheet1.Range("A2:D6"), i, 1)操作vlookup函數,用法和excel中一樣,照著操作即可。

代碼如下:

Private Sub CommandButton1_Click()

Dim i As Integer '定義變量

Set Sheet1 = Application.ThisWorkbook.Worksheets("sheet1") '設置工作表

For i = 2 To 4

Sheet1.Cells(i, 8) = Application.WorksheetFunction.VLookup(Sheet1.Cells(1, 8), Sheet1.Range("A2:D6"), i, 1)

'執行查詢,如果i為2,則返回第二列值,如果i為3,則返回第三列值,以此類推。

Next

End Sub

總結:vlookup函數是一個非常強大的函數,除了查詢使用,還能合併表格,多條件查詢等,因此掌握基礎用法和VBA操作excel常用函數非常重要。

相關知識閱讀:

Excel VBA操作電子表格兩大重要屬性詳解

如何通過VBA的range、cells兩大屬性操作Excel單元格詳解

Excel VBA編程中必會的三大執行語句

相關焦點

  • EXCEL表格詳解vlookup第五彈-VBA自己寫myLookup函數
    我們在前四彈詳細介紹了vlookup函數,以及vlookup函數實現不了後,使用index為主函數加match,small,if等函數的組合拳來實現複雜的條件查找。由於大家從事的工作領域不同,有時候還需要實現更加複雜的查找,這時往往在幾個函數之間相互切換,相互套用,難免給一些相對固定的查找帶來不必要的麻煩。下面我就手把手地帶大家寫一個自己的函數myLookup() ,使用這一個函數來實現前四彈的所有功能。
  • vlookup函數使用匯總大全!
    大家都知道,在使用excel時,vlookup函數的使用頻率非常大,之前在網上看到這樣的一句話,不會vlookup函數就不要說會excel,那麼今天就帶領小夥伴們一起去了解它吧,看看在工作中都一般用於哪些場景呢?
  • 多條件數據查詢,你選擇用lookup、vlookup還是index+Match函數?
    Excel數據查詢想必大家都有碰到過。今天我們就來詳細的學習一下Excel非常實用查詢函數:lookup、vlookup以及Index+Match函數在不同情況下的多條件查詢使用。看看大家都喜歡用哪一類函數進行數據的多條件查詢。
  • Max函數不止是查找最大值,數據查詢它比vlookup函數更簡單
    在Excel中Max函數詳細大家是不陌生的,這個函數在數據查詢中是查詢最大值的一個函數。但是如果你只是認為它只能查詢最大值就錯了,它跟vlookup函數一樣,同樣可以進行數據單條件和多條件查詢操作,而且操作上面更加簡單。
  • Excel查找引用:比vlookup函數還好用的是hlookup函數
    在之前發布了一個動態排班表的文章,根據日期和班組來查詢班次,小編原來使用了一個很長很長的if+vlookup函數組合查找到的!函數查找範圍是使用了定義名稱!沒想到只要一個hlookup函數就可以解決這個函數和vlookup函數的查找區別是橫向查找,查找值都必須在查找區域的首行/首列所以在F2中輸入公式=HLOOKUP(B2,四班三倒!
  • Excel中的vlookup函數如何反向查詢
    Excel中的vlookup函數如何反向查詢在Excel中大家都知道查詢使用vlookup的方便,但都是從左向右查詢的,那麼如何從右向左查詢呢?下面大家一起探討一下。如表源數據:利用姓名查詢到電話可以使用vlookup函數非常方便,公式如下=VLOOKUP(F2,$B$2:$C$14,2,0),就查詢到時電話了。
  • 學會vlookup函數,查詢的時候不能用?聽說和index函數有關!
    昨天寫完index函數和match函數的時候後,很多朋友都在問,我查詢信息的時候完全可以用vlookup函數呀,為什麼還要兩個函數配合使用?這不是讓操作過程更複雜了嗎?確實可能是小編在昨天的文章中沒有說清楚查詢方向的問題,才導致很多朋友會有這樣的想法,那今天小編就來說一說這兩個函數之間有什麼差別?我們在什麼樣的情況下分別使用這兩個函數?
  • vlookup函數九大經典查詢案例詳解,現在還不會用那就out了
    操作三:vlookup函數輕鬆實現數據的多條件查詢案例說明:在人員信息中有重複的姓名,所以這裡我們通過姓名和工號2個條件來確定人員當月的獎金。這裡同樣可以使用vlookup函數。操作四:vlookup+Iferror函數快速剔除數據錯誤值案例說明:我們需要根據人員的姓名查詢對應的獎金,因為楊遠這個人源數據裡面不存在這個人,所以數據查詢時會出現錯誤值。這裡就需要用到iferror函數剔除錯誤值。
  • Indirect搭配Vlookup函數輕鬆實現多表查詢.
    函數可以實現表格數據查詢,今天我們來學習一個組合函數,看看vlookup函數和Inddirect函數搭配起來使用有多強大。這是一個使用 Vlookup 函數嵌套 INDIRECT 函數來實現跨工作表數據引用的教程。INDIRECT+Vlookup這對函數組合,經常用來進行跨表查詢數據。
  • 當查詢的Excel表格列太多,這個函數給vlookup神助攻
    數據表查詢,如果你已經擁有了 O365,那麼恭喜你,xlookup 函數雲淡風輕中簡化並包羅了所有查詢函數,過去所積累的一切技巧都不再需要了。 可是很多讀者還是遺憾表示,沒有安裝 O365,那也不必沮喪,咱繼續 vlookup,那麼今天的教程就變得意義非凡。
  • 【excel】Vlookup 函數這些錯誤你遇到了嗎!
    點擊上方藍色字體, 免費訂閱"內部審計學習平臺"  平時在用vlookup函數是公式輸入無誤,缺不能出來正確的結果,是否在懷疑自己,難到我的Vlookup函數是假的嗎?2、如果查找的值不在數據表的第一列,也會出現錯誤值。如下圖,【工號】信息在原始表的第二列,因此公式返回錯誤。
  • 使用vlookup函數時出現 n/a如何處理
    在Excel中當我們使用vlookup函數時會可能出現#N/A 錯誤,意思是 Not Applicable(不適用,即值不可用)。那麼為什麼會出現#N/A 錯誤呢?通常,VLOOKUP 函數返回 #N/A 錯誤有以下4種原因。接下來,我們逐步了解並給出解決方法。
  • 詳解vlookup函數的使用方法,以及使用技巧
    Hello,大家好,這一章我們開始學習函數,函數可以說是excel的精髓,它們能夠幫助我們快速的處理數據,提高工作效率,今天我們就來學一個我們工作中用到最多的函數,可能也是很多人的啟蒙函數,他就是vlookup函數,vlookup函數操作簡單,功能強大,它也是Excel中使用最廣泛的函數之一開始之前我們先來學習下excel
  • Excel數據查詢只會vlookup就out了,這幾種查詢方式Max函數更方便
    Excel中的Max函數相信大家都不陌生,Max函數使用較多的功能就是查詢出單元格區域內的最大值。但是這個函數的功能不僅僅是這麼簡單,同樣可以跟vlookup函數一樣進行數據查詢。而且在查詢最近數據、單條件、多條件數據查詢的時候相比會更簡單。
  • 不使用任何公式,2步搞定區間判斷,比if與vlookup函數更加簡單
    Hello,大家好,今天有一個粉絲表示關於區間判斷的例子看了很多,無外乎就是使用vlookup函數與if函數,但是自己是小白,真的看不懂,有沒有一種簡單的方法,快速實現條件判斷?當然有了,最簡單的就是將數據加載進power query中只需要點點滑鼠,2步即可搞定區間判斷一、vlookup與if的區間判斷首先我們先來了解下if函數與vlookup函數進行區間判斷,如下圖If函數的區間判斷,我們是使用嵌套來完成的,就是將if函數一層一層的嵌套起來
  • 這3種數據查詢,連vlookup函數都做不到,卻被這幾個函數輕鬆破解
    相信很多同學都知道,Excel數據查詢過程中使用最多的函數莫過於vlookup函數。但是在實際操作過程中我們卻發現一個問題,經常會有些情況是vlookup函數之王也難處理的。今天我們就來詳細的學習一下,如何解決vlookup函數查詢碰到的難題。
  • vlookup函數使用教程
    vlookup函數是一個查詢函數,可以在眾多的數據中,根據條件查詢想要的數據,下面是vlookup函數的使用教程。1、VLOOKUP函數語法解析函數一共有四個參數,表達式為=vlookup(查找值,查找區域,查找結果所在的列,匹配類型) 可以理解為:VLOOKUP(找什麼,在哪找,找到後返回其右側對應的第幾列數據,精確還是模糊查找)
  • vlookup函數單個數據就這麼簡單,搭配Match函數批量查詢才是高效
    vlookup函數相信我們大家都不陌生,它在Excel數據查詢中是一個非常實用的函數。通過vLookup函數可以查詢到我們精確查詢出我們需要的各種數據。但是vlookup也有局限性那就是一次只能查詢單個值,在搭配match函數的時候,它卻可以一次查詢全部數據。
  • vlookup+Indirect函數就是這麼強,讓你輕鬆合併12個月數據
    表格數據合併相信許多同學都碰到過這個問題,之前有講過函數合併、數據透視合併、VBA代碼合併等操作。今天我們來學一個數據合併新操作,那就是通過vlookup+Indirect函數搭配的方式,來輕鬆實現多表數據的合併。
  • 製作動態圖表,其實很簡單,使用vlookup函數3步就搞定了
    大家好,動態圖表你會製作嗎?是不是覺得動態圖表製作起來應該非常的麻煩?其實並不是,大家熟悉的vlookup函數就可以用來製作動態圖表,操作也非常的簡單,下面就讓我們來一起操作下吧在這裡我們除了需要用到vlookup函數,還需要用到COLUMN函數,COLUMN函數的作用是返回函數所引用的單元格的列標號如下圖我們在A3單元格中將公式設置為:=COLUMN(D3),這個函數的結果是4,因為函數返回的是單元格列標號的值