您現在的位置是:首頁 > 綜合
EXCEL表格LOOKUP的查詢原理
- 由 易庫資源 發表于 綜合
- 2021-06-07
二分位什麼意思
上節我們講了LOOKUP,但是很多人只停留在套用語法階段,想要真正靈活的應用lookup公式,我們必須要了解他的查詢原理,二分法查詢。
1、二分法的概念
相對遍歷法(按照順序從前往後找),二分法是從中位值(中間位置,也叫二分位處)開始查詢,如果查詢不到,再從下一個中位值處開始查詢,直到找到目標值或者是比目標值小但最接近目標值的值。
我們透過一個例子來說明原理:
1、先找到第一個中位值處,比如上圖,查詢範圍一共11個數字,那中位值就是第6位;(
中位值的計算,int((行數+1)/2)
)
2、若查詢值大於該中位值(說明查詢值在下方區域,因查詢範圍是按照升序排列的),那就向下找下個區域的二分位處繼續查詢;
3、若查詢值小於中位值,那就找上方區域的二分位處再繼續查詢;
4、當二分位處的值等於查詢值時,向下逐個查,最後相鄰也相等的值即符合條件。
如本例,查詢值為005,第一次查詢第一個二分位處的值為006,查詢值小於006,說明005在上方區域,上方五個數字,所以中位值處為第三個位置。正好第三個位置005與查詢值一致,所以逐個向下查,最後找到與005相鄰的最後一個一個005。
2、lookup提取數字
大家理解了上面的原理以後,那就可以想通為什麼拿1作為查詢值,在一個由0,負陣列成的陣列中,總能返回最後一個數字了吧!
下面我們看看兩個套路:
數字在前面如何提取:
用left提取後加負號,文字計算後會返回錯誤值,數字前面加負號。忽略錯誤值,相當於返回了一個由負陣列成的陣列,比如E1中返回{-4,-45},用1作為查詢值就回返回-45,然後加負號,就變成了45。
看了上面的例子,大家肯定會頓悟,數字在後面也可以用這個套路呀!
這個就不作說明了,跟上面一樣的道理,大家仔細體會。
若是數字在中間呢?大家可以思考下!
轉自:米宏Office