Excel 中Vlookup函數更靈活的擴展用法

2020-12-24 office實驗室

在Excel 中Vlookup函數是很常用到的用於匹配數據的函數。

今天我們要更進一步地學習它的進階用法。

如下圖所示:

我們在左側黃色單元格分別輸入查詢編號,商場號,是否促銷

來獲得左下的商品編號,商品名稱,價格

在本例中主要使用VLOOKUP函數來實現

具體步驟如下:

在左下側B7單元格輸入=B2B8單元格輸入=VLOOKUP(B7,INDIRECT($B$3),2,0)B9單元格輸入=VLOOKUP(B7,INDIRECT($B$3),$C$4,0)C4單元格輸入=IF(B4="是",3,4),這裡C4單元格的取值由B4單元格的值來決定的當為4時C4就是3否則是4。這樣就可以通過是、否促銷來改價格了。在B3單元格設置數據有效性

6. 在B4單元格設置數據有效性

這裡具體說下INDIRECT($B$3)

這裡的INDIRECT($B$3)等效於三張表的A:D

當B3單元格是store_28時對應的是28商場的表的A:D的區域,store_28是通過菜單中的公式——定義名稱來定義的。如下圖所示:

當$B$3單元格變為store_16 時數據源就是16商場的數據了

INDIRECT($B$3)作用是隨著B3的變化將相應的數據源引用提取出來。

我們來看下使不使用INDIRECT() 的差別:

如:

B8單元格輸入=VLOOKUP(B7,INDIRECT($B$3),2,0)

B7=20944

B3=store_28

等效:

=VLOOKUP(20944,'28'!$A:$D,2,0) 。

B8單元格輸入=VLOOKUP(B7,$B$3,2,0)

B7=20944

B3=store_28

等效:

=VLOOKUP(20944,「store_28」,2,0) ,這樣就會出錯「store_28」不是一個數據區域而是一個字符,通過INDIRECT(「store_28」)能將其解析出'28'!$A:$D 區域。

通過本例的學習我們能夠掌握通過更加靈活的改變VLOOKUP()函數中的各個參數動態的獲取我們所需要的結果。本例僅為大家提供一個思路,事實上這樣的靈活拓展可以在更多的函數和更的工作實例中應用。希望本節講解對大家在工作實際中能有所幫助和啟發。

更多作者文章

EXCEL 的分行使用技巧

在Excel中如何根據日期動態改變可編輯區域?

如何讓電腦自動幫你列印文檔

如何使用EXCEL 製作動態密碼登入窗體

附:VLOOKUP()、INDIRECT()、IF() 的語法:

語法:

VLOOKUP

VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

VLOOKUP 函數語法具有下列參數 (參數:為操作、事件、方法、屬性、函數或過程提供信息的值。):

lookup_value 必需。要在表格或區域的第一列中搜索的值。lookup_value 參數可以是值或引用。如果為 lookup_value 參數提供的值小於 table_array 參數第一列中的最小值,則 VLOOKUP 將返回錯誤值 #N/A。table_array 必需。包含數據的單元格區域。可以使用對區域(例如,A2:D8)或區域名稱的引用。table_array 第一列中的值是由 lookup_value 搜索的值。這些值可以是文本、數字或邏輯值。文本不區分大小寫。col_index_num 必需。table_array 參數中必須返回的匹配值的列號。col_index_num 參數為 1 時,返回 table_array 第一列中的值;col_index_num 為 2 時,返回 table_array 第二列中的值,依此類推。如果 col_index_num 參數:小於 1,則 VLOOKUP 返回錯誤值 #VALUE!。大於 table_array 的列數,則 VLOOKUP 返回錯誤值 #REF!。range_lookup 可選。一個邏輯值,指定希望 VLOOKUP 查找精確匹配值還是近似匹配值:如果 range_lookup 為 TRUE 或被省略,則返回精確匹配值或近似匹配值。如果找不到精確匹配值,則返回小於 lookup_value 的最大值。要點 如果 range_lookup 為 TRUE 或被省略,則必須按升序排列 table_array 第一列中的值;否則,VLOOKUP 可能無法返回正確的值。有關詳細信息,請參閱對區域或表中的數據進行排序。如果 range_lookup 為 FALSE,則不需要對 table_array 第一列中的值進行排序。如果 range_lookup 參數為 FALSE,VLOOKUP 將只查找精確匹配值。如果 table_array 的第一列中有兩個或更多值與 lookup_value 匹配,則使用第一個找到的值。如果找不到精確匹配值,則返回錯誤值 #N/A。

INDIRECT函數:

INDIRECT(ref_text, [a1])

INDIRECT 函數語法具有以下參數 (參數:為操作、事件、方法、屬性、函數或過程提供信息的值。):

Ref_text 必需。對單元格的引用,此單元格包含 A1 樣式的引用、R1C1 樣式的引用、定義為引用的名稱或對作為文本字符串的單元格的引用。如果 ref_text 不是合法的單元格的引用,函數 INDIRECT 返回錯誤值 #REF! 。如果 ref_text 是對另一個工作簿的引用(外部引用),則那個工作簿必須被打開。如果源工作簿沒有打開,函數 INDIRECT 返回錯誤值 #REF! 。如果 ref_text 引用的單元格區域超出行限制 1,048,576 或列限制 16,384 (XFD),則 INDIRECT 返回 #REF! 錯誤。 注釋 此行為不同於 Microsoft Office Excel 2007 之前的 Excel 版本,早期的版本會忽略超出的限制並返回一個值。A1 可選。一個邏輯值,用於指定包含在單元格 ref_text 中的引用的類型。如果 a1 為 TRUE 或省略,ref_text 被解釋為 A1-樣式的引用。如果 a1 為 FALSE,則將 ref_text 解釋為 R1C1 樣式的引用。

IF函數:

IF(logical_test, [value_if_true], [value_if_false])

IF 函數語法具有下列參數 (參數:為操作、事件、方法、屬性、函數或過程提供信息的值。):

logical_test 必需。計算結果可能為 TRUE 或 FALSE 的任意值或表達式。例如,A10=100 就是一個邏輯表達式;如果單元格 A10 中的值等於 100,表達式的計算結果為 TRUE;否則為 FALSE。此參數可使用任何比較運算符。value_if_true 可選。logical_test 參數的計算結果為 TRUE 時所要返回的值。例如,如果此參數的值為文本字符串「預算內」,並且 logical_test 參數的計算結果為 TRUE,則 IF 函數返回文本「預算內」。如果 logical_test 的計算結果為 TRUE,並且省略 value_if_true 參數(即 logical_test 參數後僅跟一個逗號),IF 函數將返回 0(零)。若要顯示單詞 TRUE,請對 value_if_true 參數使用邏輯值 TRUE。value_if_false 可選。logical_test 參數的計算結果為 FALSE 時所要返回的值。例如,如果此參數的值為文本字符串「超出預算」,並且 logical_test 參數的計算結果為 FALSE,則 IF 函數返回文本「超出預算」。如果 logic

相關焦點

  • 4個vlookup函數的高階用法,估計你一種都沒用過
    Hello,大家好,vlookup函數相信大家都非常的熟悉,今天就跟大家分享4個vlookup函數的高階用法,學會它們,你就是公司的大神了。,但是如果工號的第一位或者第二位是0的話,這個0我們是提取不到的,我們點擊這一列,然後按Ctrl+1調出格式窗口,點擊自定義,在類型中輸入6個0,點擊確定,這樣的話就完成了二、合併同類項如下圖,我們想要將相同班級的姓名放在一個單元格中,首先我們班級對照表後面構建一個輔助列,在裡面輸入函數:=B2&
  • Excel表格vlookup函數搭配match函數詳解
    大家好,我是涼涼老師,今天給大家分享一下Excel表格vlookup函數搭配match函數的用法,首先看圖:vlookup用法上面的表格是右邊的數據,根據名稱在左邊數據裡面查詢對應的數據,=iferror(vlookup($f2,$a$1:$d$6,2,0),"")首先我們先來分析一下這個函數
  • Vlookup函數除了查詢引用,它的VBA使用你會嗎
    02Vlookup函數的VBA操作使用VBA來操作vlookup函數與在excel中一樣,即參數相同、功能相同、用法相同,但是唯一不同的是通過VBA能夠簡化VBA的書寫,同時實現更強大的功能。要通過VBA操作vlookup函數就必須得使用Application.WorksheetFunction屬性來操作excel常用函數。由於在剛才的例子中我們要查詢性別、學歷、是否畢業三個值,因此我們的vlookup函數要執行三次循環。
  • 查找總是出錯:別為難vlookup函數了,還是讓lookup函數來吧
    有朋友提到在使用vlookup函數查找的時候結果為什麼是錯的?明明查找規格都是一樣的,並且沒有任何格式差別,怎麼會出錯了呢?看到朋友發來的文件才知道原來是通配符惹的禍?在excel中星號(*)是有特別意義的,如果你需要查找的內容中包含星號,那麼星號的本身是(~*),這樣才能正確查找!非通配符:~加在通配符*或?前,此時*或?
  • excel中的經典查找引用函數之lookup函數的使用
    excel表格的眾多函數中,我們常用的查找引用函數大致有3個,分別是有縱向查找功能的vlookup函數、有橫向查找功能的hlookup函數和可以任意多條件查找引用的lookup函數。下面我們來介紹lookup函數的用法。
  • EXCEL公式函數系列 之 查找與引用函數VLOOKUP
    大家好,我們已經學習完了EXCEL中的邏輯函數,從今天開始我們開始學習查找與引用這一系列的函數。今天的標題有點變動,是的,把「教學」去掉了。通過這幾天做文章發現EXCEL博大精深,大家共同學習進步吧。今天我們學習上次提到的VLOOKUP函數。
  • Excel中Vlookup函數不能做的,lookup函數輕輕鬆鬆完成!
    工作中,vlookup函數是大眾情人,但也有它完成不了的工作,這個時候用lookup函數便可以輕鬆的完成!1、查找最後一條記錄例如公司會持續進不同的物品,不同的數量,現在我們需要求出最後一次進貨的數量是多少?
  • Excel vlookup篩選兩列的重複項與查找兩個表格相同數據
    以下是vlookup篩選兩列的重複項與查找兩個表格相同數據的具體操作方法,實例中操作所用版本均為 Excel 2016。一、Excel vlookup篩選兩列的重複項1、假如要篩選出一個表格中兩列相同的數據。
  • excel函數vlookup的使用方法之簡要說明
    excel函數VLOOKUP在現實工作中使用非常的方便,可以給我們的工作帶來很高的效率。VLOOKUP函數主要是一個縱向的查找函數,最終把想要的列的值給提取到顯示出來。= VLOOKUP (你想要查找的內容,要查找的位置,包含要返回的值的區域中的列號,返回近似或精確匹配-表示為 1/TRUE 或 0/FALSE)。注意:要查找的這個區域選擇的時候一定要絕對引用(像這樣$A$5:$B$17),操作就是選擇區域以後直接按一下鍵盤上的F4按鍵就可以。
  • 財務辦公常用Excel公式釋義手冊,及各類函數用法,全部整理齊了
    今天小編就和大家匯總了一套《Excel 公式釋義及示例大全》手冊,裡面包含了各類函數用法及全部函數操作,共435頁。(文末有福利)好了,現在先給大家展示一下vlookup函數的七個經典查詢操作。大家一起來學習一下吧!
  • EXCEL表格詳解vlookup第五彈-VBA自己寫myLookup函數
    我們在前四彈詳細介紹了vlookup函數,以及vlookup函數實現不了後,使用index為主函數加match,small,if等函數的組合拳來實現複雜的條件查找。第三步:在編輯器中雙擊打開剛才創建的模塊「模塊1」,然後輸入以下代碼,保存退出編輯器。第四步:在單元格中輸入我們剛寫的函數公式,如下。
  • excel替換函數教程:substitute函數和replace函數的用法及案例
    在excel進行文本替換,除了用查找替換功能,也可以用函數來實現。這節課,我們就來講下substitute函數和replace函數的用法及案例。首先,來看一下案例圖表:上半部分表格,需要的是將A列單元格裡的B列單元格內容替換掉,也就是刪除掉,這種情況用的是substitute函數。
  • Office365 之 Excel新增加的函數XLOOKUP的用法有哪些?(續)
    將if_not_found參數添加到函數中的案例當xlookup找不到 lookup_value時返回第4個參數指定的值。D11,"沒有此國家")02案例4:一次返回多個結果,輸入一個公式,Xlookup會自動按順序返回其他列的值,原來vlookup
  • 表格排序那些不一樣的使用技巧 配合函數還可以這樣玩
    這裡在WPS版本中可以直接用合併內容,excel只能用公式或者&連接啦。這樣姓名就會根據我們定義的順序排序啦!這個自定義排序還有一個好處和用法就是,當你添加了自定義的序列之後,輸入第一個的時候,拉動向下填充,神奇的一幕就會出現了,如下圖:它會根據你添加的序列智能填充,這個小功能在實際工作中也是很實用的哦。
  • INDEX+MATCH函數真的能替代VLOOKUP函數嗎?我看未必!
    前文發完之後,有個有意思的網友說:簡單表用VLOOKUP,INDEX+MATCH函數不支持排序!看來這位新道友,對MACTH的用法有些不太熟悉啊,哪就必須安排一下,所以今天我就來聊聊這個INDEX+MATCH函數和VLOOKUP函數上用法有什麼細微區別吧。
  • 四句話讓你搞清楚,Excel中函數與Excel VBA中函數不同
    Excel中我們經常會用到函數,其實ExcelVBA中也有函數。他們之間有什麼區別和聯繫,搞懂下面四句話就知道了。第一句:Excel中有的函數,VBA中沒有,但是可以引用比如sum函數中Excel中,但是不在VBA中,VBA中可以調用這個函數。
  • 學會VLOOKUP函數的一個隱藏參數 告別 N/A錯誤值
    假設現在,已知成績數據表和需要匹配數據表,現在需要根據姓名在成績數據表中匹配姓名對應的成績,需要用vlookup函數匹配。二、VLOOKUP函數的來源vlookup函數是【查找】【引用函數】,而vlookup函數【第二參數】不好理解,是因為,第二參數有個隱藏的一個【要點】,想要把VLOOKUP函數學透徹,必學先了解這個函數是來源,最開始是沒有這個函數的,是match【查找函數】和Index【引用函數】這兩個函數簡化成了一個vlookup查找引用函數,所以在學vlookup之前,先簡單了解下
  • excel如何按條件求和?全都在這裡:從sum函數到sumifs函數
    對於excel裡面的數字,常用的統計就是求和及計數。如果你沒有學會這些函數,那麼就無法應對大量數據的表格。現在,我們就來用函數公式實現excel自動化辦公。一、掌握「sum函數」的用法sum函數是將單元格中的數字相加,用法為:=sum(單元格\單元格區域,……)不引用單元格的話,就直接填寫內容。可以添加N個單元格\單元格區域。
  • 這篇通俗實用的Vlookup函數教程,5分鐘就可以包你一學就會
    如何利用Vlookup函數獲取學號中的班級信息。換言之,咱們源數據中放著姓名性別學號班級等信息,而在另一張表格中一定有學號信息,但其他信息就未必有,這需要我們將缺失的信息自動同步過去。使用vlookup函數的確非常簡單,今天我就再次來剖析一下這個函數吧。
  • Excel明星級函數vlookup,精確查找和模糊查找!
    工作中使用頻率最高的函數非VLOOKUP莫屬了,舉一個工作實例,左右是員工的工資數據總表,領導讓你找出右邊這些人的工資是多少如果你還在一個個的篩選,然後複製粘貼,那就趕緊來學一下VLOOKUP函數VLOOKUP函數參數講解VLOOKUP(查找值,查找區域