日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言中lookup函数功能,Lookup函数详解

發(fā)布時間:2024/4/20 编程问答 42 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言中lookup函数功能,Lookup函数详解 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文轉(zhuǎn)載自公眾號:Excel精英培訓(xùn),作者:趙志東老師,感謝趙老師無私分享!

蘭色以前發(fā)過好多關(guān)于lookup函數(shù)的應(yīng)用的例子,它的強(qiáng)大功能令很我們眼花繚亂,但絕大部分用戶只停留在套用階段,至于運算原理卻沒幾個人能說明白。想了解lookup的查找原理和更深入的使用它,你必須了解今天要學(xué)習(xí)的二分法原理。

從一個例子說起:

【例】下圖中左表和右表只有第5行的會員名子不同,但在第11行查找B對應(yīng)的消費金額時結(jié)果卻不同。甚至左表中查找到的是會員A的消費金額。

公式:

B11 =LOOKUP(A11,A2:B8)

E11 =LOOKUP(D11,D2:E8)

其實,lookup函數(shù)很清醒,一點都不傻,只是我們對它了解的太少了!

lookup函數(shù)查找是遵循二分法查找原理,所以要看懂上例中的查找結(jié)果,必須要了解什么是二分法查找。(二分法是excel中最難理解的函數(shù)知識點,建議同學(xué)們洗把臉清醒一下再向下看)

一、什么是二分法。

從前向后一個一個的查找,是遍歷法。二分法不是這樣,它是從二分位處查找,如果查找不到再從下一個二分位處查找,直到查找到和他大小相同或比它小的數(shù)。

二、基本原理。

想了解二分法,必須了解下面2個原理。

1、二分位的判定

說白了,二分位就是中間的位置,如果有7個數(shù)(lookup函數(shù)的第2個參數(shù)的總行數(shù)),那么第4個數(shù)就是中間的位置。

=LOOKUP(A11,A2:B8)

如果有10個數(shù)呢,則第5個位置是二分位。這里有一個公式可以計算出來。

=INT((總行數(shù) 1)/2)

2、查找方向確定

當(dāng)在二分位查找不到時,接下來該怎么查找呢?

當(dāng)上一次二分位值大于查找的值時,向上繼續(xù)查找,在二分位上面區(qū)域找出新的二分位,直到找出符合條件的值。如下圖中,先從第5行查,因為C>B,所以就向上繼續(xù)查,上面區(qū)域D2:D4區(qū)域的二分位值是D3,而D3的值是B,則對應(yīng)的E列值800是是查找結(jié)果。

當(dāng)數(shù)值小于查找的值時,向下繼續(xù)按二分法查。如下圖中,先查找第5行,發(fā)現(xiàn)AB,所以A7的A最終符合條件(查找到和目標(biāo)值相等,或比目標(biāo)值小的值)

當(dāng)二分值等于查找的值時,向下逐個查,最后相鄰且相等的值即符合條件。

如下圖所示,在A5(第1個二分位)查找到了A,本來查找結(jié)果應(yīng)該是B5的860,但由于A6的值也是A,所以查找結(jié)果變成了第6行的值。而A8雖然也是A,但和A5不是連續(xù)相等區(qū)域。所以結(jié)果不是B8。

三、lookup示例解析

1、區(qū)間查找。

【例1】如下圖所示,是典型的區(qū)間查找公式。查找350對應(yīng)的提成比率是7%。

查找過徎:

從第1個二分位處(A4)處開始查找,200<350,向下查找。

在第2個二分位處(A6)的值400>350,所以要向上查,上面只有A5一個值300,且該值小于350,所以B5的值即為最終查找結(jié)果。

2、查找最后一個。

【例2】如下圖所示,查找顧客A最后一次的消費金額。

分析:

這里肯定不能直接用Lookup查找B,否則按二分位查找,結(jié)果不一定是最后一個。所以就用0除的方法把符合條件的變成0,不符合條變成錯誤值:

=0/(A2:A8=A11)

結(jié)果是

{0;0;#DIV/0!;#DIV/0!;0;#DIV/0!;#DIV/0!}

由于lookup會過濾掉錯誤值,所以在lookup眼中,上面的數(shù)組是這樣的:

{0;0;0}

然后用1查找最后一個0的位置

=Lookup(1,0/(A2:A8=A11),B2:B8)

這里1是任一個大于0的值,因為大于0,所以用二分法查找時,會一直向下查找,直到最后一個0值。

蘭色說:lookup的二分法查找,是跳躍式的查找。它總認(rèn)為被查找的1組值是從小到大排列,如果遇到小的就向下找更大的,如果遇到大的就向上找更小的。

總結(jié)

以上是生活随笔為你收集整理的c语言中lookup函数功能,Lookup函数详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。