excel中if函式及lookup函式的應用問題

2021-08-31 21:47:12 字數 6101 閱讀 6540

1樓:綠衣人敲門

lookup 函式可返回一行或一列區域中或者陣列中的某個值。lookup 函式具有兩種語法形式:向量和陣列。

向量形式的 lookup 在一行或一列區域(稱為向量)中查詢值,然後返回另一行或一列區域中相同位置處的值。陣列形式的 lookup 在陣列的第一行或列中查詢指定值,然後返回該陣列的最後一行或列中相同位置處的值。

向量形式的 lookup

向量形式的 lookup 在一行或一列區域(稱為向量)中查詢值,然後返回另一行或一列區域中相同位置處的值。如果要指定其中包含要匹配的值的區域,請使用這種形式的 lookup 函式。

向量形式的語法

1.lookup(lookup_value,lookup_vector,result_vector)

lookup_value 是 lookup 在第一個向量中搜尋到的值。lookup_value 可以是數字、文字、邏輯值,也可以是代表某個值的名稱或引用。

lookup_vector 是一個僅包含一行或一列的區域。lookup_vector 中的值可以是文字、數字或邏輯值。

2.重要說明:lookup_vector 中的值必須按升序順序排列。

例如,-2、-1、0、1、2 或 a-z 或 false、true。否則,lookup 返回的值可能不正確。大寫和小寫文字是等效的。

result_vector 是一個僅包含一行或一列的區域。它的大小必須與 lookup_vector 相同。

3.注意

如果 lookup 找不到 lookup_value,它會匹配 lookup_vector 中小於或等於 lookup_value 的最大值。

如果 lookup_value 小於 lookup_vector 中的最小值,則 lookup 會返回 #n/a 錯誤值。

示例陣列形式的 lookup

陣列形式的 lookup 在陣列的第一行或列中查詢指定值,然後返回該陣列的最後一行或列中相同位置處的值。如果要匹配的值位於陣列的第一行或列中,請使用這種形式的 lookup。

陣列形式的語法

lookup(lookup_value,array)

lookup_value 是 lookup 在陣列中搜尋到的值。lookup_value 可以是數字、文字、邏輯值,也可以是代表某個值的名稱或引用。

如果 lookup 找不到 lookup_value,它會使用該陣列中小於或等於 lookup_value 的最大值。

如果 lookup_value 小於第一行或列(取決於陣列維度)中的最小值,則 lookup 會返回 #n/a 錯誤值。

array 是一個單元格區域,其中包含要與 lookup_value 進行比較的文字、數字或邏輯值。

陣列形式的 lookup 與 hlookup 函式和 vlookup 函式相似。其區別是 hlookup 在第一行中搜尋 lookup_value,vlookup 在第一列中進行搜尋,而 lookup 根據陣列的維度進行搜尋。

如果 array 所覆蓋區域的寬度大於高度(列多於行),則 lookup 會在第一行中搜尋 lookup_value。

如果 array 所覆蓋的區域是正方形或者高度大於寬度(行多於列),則 lookup 會在第一列中進行搜尋。

使用 hlookup 和 vlookup 時,可以向下索引或交叉索引,但 lookup 始終會選擇行或列中的最後一個值。

重要說明:array 中的值必須按升序順序排列。例如,-2、-1、0、1、2 或 a-z 或 false、true。

否則,lookup 返回的值可能不正確。大寫和小寫文字是等效的。示例

2樓:匿名使用者

要用絕對引用,不然下拉後公式就不對了, a2:d5變以a3:d6了,公式改一下,一樓的也可以.或者改為

=if(iserror(vlookup(a2,sheet2!a$2:d$5,1,false)),"",vlookup(a2,sheet2!a$2:d$5,1,false))

參看下面關於絕對引用於相對引用的文章.

3樓:芮城老憨

=if(iserror(vlookup(a2,sheet2!a:d,2,false)),"",vlookup(a2,sheet2!a:d,2,false))

excel中函式if與vlookup怎麼結合著使用?

4樓:匿名使用者

在h2輸入以bai下公式

du,然後向下填充公式

=vlookup(f2,a:d,if(g2="購入zhi",2,if(g2="售出",3,4)),0)

通過if函式建立g列條件對

dao應的查詢資料的第幾列,專通過vlookup函式返回屬資料。

此公式僅作舉例,與index+match和vlookup+match函式使用相同。

詳見附圖

5樓:匿名使用者

最好是有例子,有很多種的用法,主要分為if中巢狀vlookup和vlookup中巢狀if

6樓:匿名使用者

那要依樓主具體情況而定了

急:excel中條件格式的使用(if函式中巢狀lookup函式) 20

7樓:匿名使用者

條件格式的公式改為

=if($d3=1,m3<=10,if($d3=2,m3<=8,if($d3=3,m3<=5,if($d3=4,m3<=2,0))))

8樓:退休畫線工

條件格式的公式與工作表中的公式雖然原理一樣,但因為應用場合的差別,還是有些差別的。即使你原來條件格式公式也能得到正確的顯示效果,但從條件格式的原理上來說,也是有問題的,這個姑且就不說了。

現在說下「大神」給你的公式,做條件存在的問題:首先是if只有條件,沒有結果。再者,條件格式的公式不允許出現這樣的陣列格式:

,必須要換成函式來生成這樣的陣列,或者老老實實地一個個if巢狀。

所以你需要的條件格式公式可為:

=$m3<=lookup($d3,row($1:$4),13-row($1:$4)*3+(row($1:$4)>1))

excel函式lookup出現的問題

9樓:綠衣人敲門

lookup的執行原理分析

lookup函式以高效的運算速度被excel函式愛好者喜歡,而且lookup在日常實際工作中特別是陣列公式,記憶體陣列中應用廣泛。

lookup(lookup_value,lookup_vector,result_vector)

lookup_value意思為我們要在資料表中查詢的「值」。

lookup_vector意思為我們要查詢的值得「資料表」。

result_vector意思為我們通過資料表想要得到的"值「。

lookup的查詢方式為二分法查詢,具體的查詢原理看下圖。

我們以一個學生成績表為例進行分析,查詢一下英語成績為98的學生姓名:

f2的公式為=lookup(d2,b2:b15,c2:c15)

意思為從b2:b15列裡面找d2,並返回c2:c15相對應行的值

這裡的結果是"劉備"肯定會讓好多人感到困惑,明明有98對應的是「王思」怎麼會返回「劉備」呢?那麼看往下看,大家就會徹底明白的。

對lookup的查詢方法進行分解——第一次二分法查詢:

98會跟第7行的資料78進行比較,因為98>78,所以返回第8到第14行的值。

第二次二分法查詢:

98會跟第4行的資料66進行比較,因為98>66,所以返回第5到第7行資料。

第三次二分法查詢:

98會跟第2行的資料87進行比較,因為98>87所以返回第3資料。

因為98比91大,所以就向下近似取比98小的最近的值——91所對應的名字

總結了一個知識點:

1、lookup要查詢一個明確的值或者範圍的時候(也就是知道在查詢的資料列是肯定包含被查詢的值),查詢列必須按照升序排列。(在excel幫助文件裡也是這麼說的)

如果所查詢值為明確的值,則返回值對應的結果行,如果沒有明確的值,則向下取的於所查詢值最近的值

2、查詢一個不確定的值,如查詢一列資料的最後一個數值,在這種情況下,並不需呀升序排列。

10樓:江西新華電腦學院

lookup函式是向後相容,總是返回最後一個符合條件所對應的值。(小於等於查詢值的最大值)。

這裡是利用的技巧,查詢值為1,查詢區域用0來除,為空,則商為0,不為空,商為#div/0!,即查詢區域中要麼為0,要麼為#div/0!,永遠查不到1,返回最一個0所對應的值。

11樓:匿名使用者

在b2單元格輸入以下公式,然後向下填充公式

=lookup(1,0/(sheet2!a$2:a$10=a2),sheet2!cj$2:cj10)

12樓:匿名使用者

精確匹配不建議用lookup而是用vlookup或index+match

=index(sheet2!cj:cj,match(a2,sheet2!a:a,))

如果還是返回na檢查資料前後是否有空格或其他不可見字元.

用len(a2)判斷一下字個數是否和觀察到的一致.

另外istext/isnumber兩個函式可以檢測資料型別. 看看a2和sheet2!a列值是否同型.

13樓:匿名使用者

注意資料格式,你好像一個是數值,一個是文字

14樓:oppo手機

先看一下兩個表中的**資料是不是相同,把單元格格式調成一樣的。

15樓:匿名使用者

還是資料不匹配的問題。

不信你就手工錄一組數試試。

(sheet2的a8:a10應該沒有資料吧?)

16樓:侯玉川

找不到資料的時候一般回顯示#n/a。

要查詢的資料表可能查不到這個資料。

可以巢狀if+iserror或者iferrorr排查一下錯誤。

17樓:匿名使用者

lookup函式以高效的運算速度被excel函式愛好者喜歡,而且lookup在日常實際工作中特別是陣列公式,記憶體陣列中應用廣泛。

18樓:匿名使用者

=vlookup(a2,sheet2!a:cj,88,0)

19樓:匿名使用者

sheet1中的資料沒有乘1吧,不然怎麼是居中呢

excel裡怎麼用vlookup函式取同時滿足兩個條件的值!

20樓:匿名使用者

需要用到陣列公式

用下面的舉例來說明:

這裡有兩個條件,後面對應第三列唯一的資料:

2.當我們需要同時滿足條件一和條件二的資料的時候,就需要使用 vlookup 的多條件查詢。

在i5單元格輸入陣列公式然後按按組合鍵結束輸入。

3.隨即便完成了對滿足兩個條件的資料查詢,向下拖拽填充即可。

擴充套件資料

多條件查詢函式的詳細解釋

這是vlookup對應的四個引數,首先針對上面的陣列公式解釋:

查詢值

:g5&h5,需要查詢的是兩個條件,但是vlookup函式只能查詢一個條件,所以需要用

"&"將查詢的兩個條件的單元格連線起來。

資料表

:if(,$a$2:$a$9&$b$2:$b$9,$c$2:$c$9)表示需要查詢的資料,這裡面巢狀使用了if函式,然後以if(,這樣的陣列引數。

引數為陣列時,會分別進行計算。先用1作為引數判斷,返回$a$2:$a$9&$b$2:

$b$9;然後用0作為引數判斷,又返回一個結果$c$2:$c$9。兩個結果重新組合一個陣列:

$a$2:$a$9&$b$2:$b$9在第一列,$c$2:

$c$9在第二列,其中"$"是絕對引用。

這樣vlookup便能查詢到兩個條件。

列序數

:需要查詢的資料位於第二列,所以輸入2。

匹配條件

:精確匹配。

excel中sumifs函式運用

你這個直接用篩選就可以了 為什麼要用函式?對人民幣 美元 港幣 直接篩選 就是你要的 如果要輸出 還可以排序 可以把人民幣全排到一起的 從你給出的 格式,用sunifs只能求出人民幣的結果,美元和港幣是求不出來的。除非是下面這樣的格式 1022.01.02 人民幣 3000 1022.01.02 人...

關於excel中HYPERLINK函式能否連結到含有關鍵字的資料夾

假設關鍵字在單元格a1,在b1使用公式 hyperlink 我的文件 a1 重要資料夾 a1 公式解釋 hyperlink函式有兩個引數,前者表示連結地址,後者表示連結顯示的文字。其中連結地址,用 連線符將相應的文字欄位連線起來。需要注意的是 若要選定一個包含超連結的單元格並且不跳往超連結,單擊單元...

excel中函式if與vlookup怎麼結合著使用

在h2輸入以bai下公式 du,然後向下填充公式 vlookup f2,a d,if g2 購入zhi 2,if g2 售出 3,4 0 通過if函式建立g列條件對 dao應的查詢資料的第幾列,專通過vlookup函式返回屬資料。此公式僅作舉例,與index match和vlookup match函...