1樓:趾高氣揚
lookup的執行原理分析
1lookup函式以高效的運算速度被excel函式愛好者喜歡,而且lookup在日常實際工作中特別是陣列公式,記憶體陣列中應用廣泛。
lookup(lookup_value,lookup_vector,result_vector)
lookup_value意思為我們要在資料表中查詢的「值」。
lookup_vector意思為我們要查詢的值得「資料表」。
result_vector意思為我們通過資料表想要得到的"值「。
lookup的查詢方式為二分法查詢,具體的查詢原理看下圖。
2下面我們用例子給大傢俱體講一下lookup的具體應用與原理:
我們以一個學生成績表為例進行分析,查詢一下英語成績為98的學生姓名:
f2的公式為=lookup(d2,b2:b15,c2:c15)
意思為從b2:b15列裡面找d2,並返回c2:c15相對應行的值
這裡的結果是"劉備"肯定會讓好多人感到困惑,明明有98對應的是「王思」怎麼會返回「劉備」呢?那麼看往下看,大家就會徹底明白的。
3我們對lookup的查詢方法進行分解——第一次二分法查詢:
98會跟第7行的資料78進行比較,因為98>78,所以返回第8到第14行的值。
4第二次二分法查詢:
98會跟第4行的資料66進行比較,因為98>66,所以返回第5到第7行資料。
5第三次二分法查詢:
98會跟第2行的資料87進行比較,因為98>87所以返回第3資料。
因為98比91大,所以就向下近似取比98小的最近的值——91所對應的名字
6這裡就給我們總結了一個知識點:
1、lookup要查詢一個明確的值或者範圍的時候(也就是知道在查詢的資料列是肯定包含被查詢的值),查詢列必須按照升序排列。(在excel幫助文件裡也是這麼說的)
如果所查詢值為明確的值,則返回值對應的結果行,如果沒有明確的值,則向下取的於所查詢值最近的值
2、查詢一個不確定的值,如查詢一列資料的最後一個數值,在這種情況下,並不需呀升序排列。(下面有例子特別說明)
endlookup用法1:lookup(lookup_value,lookup_vector,result_vector)
1我們以例子1來幫助大家理解(沒有明確的值,但是存在包含關係)
一個公司的銷售提成表如下:
2我們求取銷售額在40w所得提成:
這因為40w介於10w與50w之間,所以取比40w小的,最接近的值10w所對應的提成比例。
3我們以例子2來幫助大家理解(有明確的值)
如下圖,找成績為英語98的人的姓名:
endlookup用法2:lookup(lookup_value,array)
1lookup(lookup_value,array)的意思為,從array(陣列)裡的第一列查詢」lookup_value「的值,並返回array裡最後一列的結果。
我們依舊以例子來解釋
我們一個班級的學生成績單:
2我們查詢「李剛」的總成績:
公式為: lookup(g5,b2:f11)
從b列中查詢g5的值,找到後,返回f列對應的行的值。
endlookup函式查詢最後非空數值的方法及原理
這裡如果查詢表中,最後一個人的工資。我們想想該怎麼寫?
2g2的公式為: lookup(9e+307,d:d)
9e+307是excel中的最大數值
g3的公式為: lookup(65535,code(c:c),d:d)
65535是excel中漢字**的最大**
2樓:
1、公式2是一個陣列公式,你用普通公式求值,當然是個錯誤值,find()求值結果是個記憶體陣列,需要用陣列公式的形式來求值。
2、公式3是一個普通公式,因為你的第二個引數,就是一個普通的常量陣列,自然就能得到相應的結果。
excel中vlookup與lookup函式的區別與使用方法
3樓:次次次蛋黃米亞
一、區別:
1、vlookup的使用相對於lookup函式的使用要簡單些。
2、vlookup函式更常用。一般查詢的內容大多是精確查詢。lookup查詢的內容可以是一部分,但是vlookup的查詢內容一般是完全一致的內容。
3、vlookup函式的使用範圍是縱向查詢引用的函式。lookup函式橫向縱向都可以查詢。從函式的解釋可以知道,也就是隻能列查詢。
4、vlookup函式需要滿足查詢值在查詢範圍之前,lookup函式則不需要。
5、都可以精確查詢和模糊查詢,但是lookup的公式沒有區別,vloookup函式卻是有區別的。
二、vlookup函式使用方法:
1、如果我們要查詢下面小**各業務的總銷售量,並且業務人員數目又多的話,如果用篩選來查詢就比較麻煩,即可使用vlookup函式。
2、vlookup的公式就是:vlookup(a14,a15:e8,5,false)。最終就查到了銷售量了。
三、lookup函式使用方法:
1、開啟excel,然後新建一個excel文件,在上面輸入自己所需要的資料,或者開啟一個上面有自己需要查詢的資料的文件。
2、將滑鼠移動到自己想要得到結果的單元格中,然後在上面的輸入公式欄中輸入「=lookup(d3,b2:b7,a2:a7)」。
3、輸入完成之後,就按下「回車」鍵,就可以得到自己想要查詢的結果了。
4樓:一點設計演示
1如上圖:根據員工編號所在行的**,查詢姓名行對應的姓名,兩者是水平的關係,因此應該使用hlookup函式。
2與前一例不同,上圖右側部分是根據員工編號所在列的**,查詢姓名列對應的姓名,兩者是垂直的關係,因此應該使用vlookup函式。
3語法:
vlookup(lookup_value,table_array,col_index_num,range_lookup)
hlookup(lookup_value,table_array,row_index_num,range_lookup)
從語法上看,兩者的引數完全一樣,即:查詢值,所在的行或列,行或列的第幾個值,查詢型別
注意這裡的查詢型別:有true 和false 2種
如果為true 或省略,則返回精確匹配值或近似匹配值。也就是說,如果找不到精確匹配值,則返回小於 lookup_value 的最大數值,table_array 第一列中的值必須以升序排序;否則 vlookup 可能無法返回正確的值。
如果為 false,vlookup 將只尋找精確匹配值。在此情況下,table_array 第一列的值不需要排序。如果 table_array 第一列中有兩個或多個值與 lookup_value 匹配,則使用第一個找到的值。
如果找不到精確匹配值,則返回錯誤值 #n/a。
看以下例項說明:
4=vlookup(a12,a2:c10,2)
使用近似匹配搜尋 a 列中的值 1,在 a 列中找到小於等於 1 的最大值 0.946,然後返回同一行中 b 列的值。(2.17)
=vlookup(a13,a2:c10,3,true)
使用近似匹配搜尋 a 列中的值 1,在 a 列中找到小於等於 1 的最大值 0.946,然後返回同一行中 c 列的值。(100)
=vlookup(a14,a2:c10,3,false)
使用精確匹配在 a 列中搜尋值 0.7。因為 a 列中沒有精確匹配的值,所以返回一個錯誤值。(#n/a)
=vlookup(a15,a2:c10,2,true)
使用近似匹配在 a 列中搜尋值 0.1。因為 0.1 小於 a 列中最小的值,所以返回一個錯誤值。(#n/a)
=vlookup(a16,a2:c10,2,true)
使用近似匹配搜尋 a 列中的值 2,在 a 列中找到小於等於 2 的最大值 1.29,然後返回同一行中 b 列的值。(1.71)
5 hlookup函式的各項要求與vlookup一致,因此可以類推。
5樓:匿名使用者
lookup 函式可從單行或單列區域 (區域:工作表上的兩個或多個單元格。區域中的單元格可以相鄰或不相鄰。
)或者從一個陣列 (陣列:用於建立可生成多個結果或可對在行和列中排列的一組引數進行運算的單個公式。陣列區域共用一個公式;陣列常量是用作引數的一組常量。
)返回值。lookup 函式具有兩種語法形式:向量形式和陣列形式。
向量形式
如果 在單行區域或單列區域(稱為「向量」)中查詢值,然後返回第二個單行區域或單列區域中相同位置的值。 當要查詢的值列表較大或者值可能會隨時間而改變時,使用該向量形式。
陣列形式 在陣列的第一行或第一列中查詢指定的值,然後返回陣列的最後一行或最後一列中相同位置的值 當要查詢的值列表較小或者值在一段時間內保持不變時,使用該陣列形式。
vlookup 中的 v 參數列示垂直方向。vlookup(lookup_value,table_array,col_index_num,range_lookup)
lookup_value 為需要在**陣列 (陣列:用於建立可生成多個結果或可對在行和列中排列的一組引數進行運算的單個公式。陣列區域共用一個公式;陣列常量是用作引數的一組常量。
)第一列中查詢的數值。lookup_value 可以為數值或引用。若 lookup_value 小於 table_array 第一列中的最小值,vlookup 返回錯誤值 #n/a。
table_array 為兩列或多列資料。使用對區域或區域名稱的引用。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 查詢精確的匹配值還是近似匹配值:
如果為 true 或省略,則返回精確匹配值或近似匹配值。也就是說,如果找不到精確匹配值,則返回小於 lookup_value 的最大數值。
table_array 第一列中的值必須以升序排序;否則 vlookup 可能無法返回正確的值。有關詳細資訊,請參閱排序資料。
如果為 false,vlookup 將只尋找精確匹配值。在此情況下,table_array 第一列的值不需要排序。如果 table_array 第一列中有兩個或多個值與 lookup_value 匹配,則使用第一個找到的值。
如果找不到精確匹配值,則返回錯誤值 #n/a。
Excel中lookup函式的使用問題? 100
excel中lookup函式的使用問題?建議問題中使用中文 說明要在哪兒寫公式,公式要達到什麼目的,這些在你的提問中看不到。excel中lookup函式具體怎麼使用?lookup value 是 lookup 在第一個向量中搜尋到的值。lookup value 可以是數字 文字 邏輯值,也可以是代表...
excel中if函式及lookup函式的應用問題
lookup 函式可返回一行或一列區域中或者陣列中的某個值。lookup 函式具有兩種語法形式 向量和陣列。向量形式的 lookup 在一行或一列區域 稱為向量 中查詢值,然後返回另一行或一列區域中相同位置處的值。陣列形式的 lookup 在陣列的第一行或列中查詢指定值,然後返回該陣列的最後一行或列...
excel語句lookup不執行,跪求解答啊
1 你的單元格格式應該是被設定為了 文字型 需要將其改為 常規 然後重新輸入公式。2 你的公式有問題。vlookup c15,sheet1 c3 c18,4,1 由於你需要返回的是c3 c18中的第4列資料的對應值,而c3 c18實際只是一列資料。因此,公式錯誤。根據你的截圖判斷。公式應該為 vlo...