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

2020-12-10 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

相關焦點

  • 函數Index和函數column、row聯合用法在實際案例中的運用
    excel在上一篇文章中,我們講述了函數index與函數column、函數row、函數match組合用法在實際操作中的應用,那麼在實際應用中我們分別使用了函數index、函數column組合用法將列分布的數據轉化為行分布,使用函數index和函數row組合用法將行分布的數據轉化為列分布,也就是通過函數的運用完成了數據的轉置工作。
  • 比vlookup函數還更好用的lookup函數講解
    我們在實際工作中,當我們需要處理數據的時候,我們首先會想到使用excel表格,因為excel中有很多可以顯著提高我們工作效率的函數,我們可以藉助這些函數對數據進行快速處理,可以減輕我們的工作負擔。比vlookup函數還更好用的lookup函數講我們上節課講解了有關vlookup函數的相關內容,我們知道了vlookup函數是一個比較好用的查找函數,今天我們分享一個更加好用的查找函數
  • EXCEL公式-VLOOKUP應用
    excel的功能十分強大,vlookup函數是最基礎的函數之一,其作用非常強大可以幫助我們在眾多雜亂的數據中找到我們想要的答案。那這個函數該如何使用,下面給大家介紹一下excel中vlookup函數的使用方法。
  • Excel中sumif函數的使用方法
    sumif函數,對於很多經常使用excel的表哥,表姐來說,一定不陌生,但是,除了簡單的加總求和外,你知道它還能用做數據匹配嘛?其實,使用sumif來做匹配,一點也不比vlookup差,而且,完全不用考慮查找項是否在匹配項後面:比如,我們將例子中的花銷列提到姓名前面,此時,可以看出用vlookup函數匹配的結果已經成錯誤值了,但是sumif函數的結果依舊沒變。
  • excel中的經典查找引用函數之lookup函數的使用
    excel表格的眾多函數中,我們常用的查找引用函數大致有3個,分別是有縱向查找功能的vlookup函數、有橫向查找功能的hlookup函數和可以任意多條件查找引用的lookup函數。下面我們來介紹lookup函數的用法。
  • Excel小技巧:讓你秒懂得lookup函數區間查找星座
    在B列按CTRL+E快速填充一下日期,在C2中輸入公式=TEXT(B2,"mdd")下拉公式轉為文本格式數字!2、但是我們都知道關於文本型數字排序後並不是我們想要的結果,lookup函數和vlookup函數的模糊查找要求源數據是需要【按照升序排列】,因為根據日期區間查詢的,所有選擇這兩個函數來查找!
  • Excel比vlookup還好用的lookup函數用法大全,收藏套用!
    介紹lookup函數十大常用的用法,直接收藏,在工作中,遇到相應問題,直接套用即可。特別提醒,是lookup函數,不是vlookup函數!:$B$7=A11),$D$2:$D$7)萬能套用:=lookup(1,0/(查找值=查找列),結果列)2、逆向查詢公式:=LOOKUP(1,0/(A11=$B$2:$B$7),$A$2:$A$7)其實LOOKUP函數不分正逆向
  • Excel中Vlookup函數不能做的,lookup函數輕輕鬆鬆完成!
    工作中,vlookup函數是大眾情人,但也有它完成不了的工作,這個時候用lookup函數便可以輕鬆的完成!1、查找最後一條記錄例如公司會持續進不同的物品,不同的數量,現在我們需要求出最後一次進貨的數量是多少?
  • 根據條件排序其實很簡單,使用vlookup函數即可搞定
    ,如果我們直接按照部門升序或者降序都無法達到要求,如下圖這個時候我們就需要手動調整數據的位置,排序就失去了意義,今天就跟大家分享2種根據條件排序的方法,操作都很簡單,下面就讓我們來一起操作下一、使用vlookup函數在這裡我們可以使用
  • 使用vlookup與lookup函數就可以了
    對於這樣的問題我們使用vlookup函數與lookup函數就能快速搞定一、排序首先我們點擊按Ctrl+a選擇所有數據,然後點擊排序,選擇自定義排序,然後在自定義排序的窗口中點擊添加條件,我們將主要關鍵字設置為姓名,將次要關鍵字設置為打開時間,並且將次序設置為升序,點擊確定,這樣的話,每個人的打開時間都聚集在一起了,並且是從小到大的
  • vlookup居然能用來合併同類項,這個公式設計的也太巧妙了
    Hello.大家好,今天跟大家分享下如何合併同類項,合併同類項就是將相同類別的數據合併在一個單元格中,最常見的就是將同一部門或者同一班級等相同類別的數據合併在一起,合併同類項的方法很多,今天主要跟大家分享下如何使用vlookup函數合併同類項
  • excel替換函數教程:substitute函數和replace函數的用法及案例
    在excel進行文本替換,除了用查找替換功能,也可以用函數來實現。這節課,我們就來講下substitute函數和replace函數的用法及案例。首先,來看一下案例圖表:上半部分表格,需要的是將A列單元格裡的B列單元格內容替換掉,也就是刪除掉,這種情況用的是substitute函數。
  • Excel中絕對引用、相對引用在函數中怎麼用?——3個例子弄清楚
    在Excel中,學習函數始終繞不開相對引用和絕對引用,引用方法得當,才能對函數靈活運用。否則計算結果很可能出現錯誤。本文就以幾個常用的案例介紹一下Excel中的相對引用、絕對引用與混合引用的用法吧。一、相對引用、絕對引用基本情況介紹。
  • Office365 之 Excel新增加的函數XLOOKUP的用法有哪些?(續)
    將if_not_found參數添加到函數中的案例當xlookup找不到 lookup_value時返回第4個參數指定的值。D11,"沒有此國家")02案例4:一次返回多個結果,輸入一個公式,Xlookup會自動按順序返回其他列的值,原來vlookup
  • 使用vlookup解決自定義排序的問題,原來自定義排序竟如此簡單
    Hello,大家好,今天跟大家分享下如何自定義排序,實現想怎麼排序就怎麼排序,工作中我們可能會遇到這樣的問題,就是要根據給定的數據位置進行排序,如果我們直接使用排序excel會根據默認的排序規則進行排序,而不能達到我們想要的結果,解決這樣的問題,跟大家分享2種方法,一種是使用自定義排序
  • 學會VLOOKUP函數的一個隱藏參數 告別 N/A錯誤值
    假設現在,已知成績數據表和需要匹配數據表,現在需要根據姓名在成績數據表中匹配姓名對應的成績,需要用vlookup函數匹配。所以要學好vlookup,需要了解這個函數的來源。二、VLOOKUP函數的來源vlookup函數是【查找】【引用函數】,而vlookup函數【第二參數】不好理解,是因為,第二參數有個隱藏的一個【要點】,想要把VLOOKUP函數學透徹,必學先了解這個函數是來源,最開始是沒有這個函數的,是match【查找函數】和Index【引用函數】這兩個函數簡化成了一個vlookup查找引用函數
  • excel中的替代函數——replace和substitute函數的應用實例
    在excel中,常用的替換函數有replace和substitute函數,這兩個函數都可以替換單元格中的部分內容,功能和ctrl+H的功能類似,但是使用函數的目的一方面不會破壞原數據,另一方面與其他函數結合可以實現更多功能,對於substitute的參數=substitute(單元格,被替換的字符串,新字符串,指定替換第幾個),第四個參數可以省略
  • 這篇通俗實用的Vlookup函數教程,5分鐘就可以包你一學就會
    如何利用Vlookup函數獲取學號中的班級信息。換言之,咱們源數據中放著姓名性別學號班級等信息,而在另一張表格中一定有學號信息,但其他信息就未必有,這需要我們將缺失的信息自動同步過去。使用vlookup函數的確非常簡單,今天我就再次來剖析一下這個函數吧。
  • excel如何按條件求和?全都在這裡:從sum函數到sumifs函數
    對於excel裡面的數字,常用的統計就是求和及計數。如果你沒有學會這些函數,那麼就無法應對大量數據的表格。現在,我們就來用函數公式實現excel自動化辦公。一、掌握「sum函數」的用法sum函數是將單元格中的數字相加,用法為:=sum(單元格\單元格區域,……)不引用單元格的話,就直接填寫內容。可以添加N個單元格\單元格區域。
  • vlookup函數的使用方法,含查找多值、以某字開頭的值與近似匹配
    vlookup 是 Excel 中常用的函數之一,它用於查找指定值所對應的另一個值,特別是表格記錄非常多時,用它很快就可以找到想查找的值。用vlookup函數查找時,既可以精確匹配又可以近似匹配。以下將先介紹vlookup函數的作用和函數表示,再列舉vlookup函數的使用方法,最後再分享它的幾個擴展應用實例,包含查找以某字或詞組開頭或結尾值、查找包含某個字或詞組的值,近似匹配和查找指定類下的所有產品價格。實例操作所用版本均為 Excel 2016。