來自Excel實務,作者白永乾
衆所周知,VLOOKUP有兩種用法:精确匹配和近似匹配(也稱模糊匹配)。二者的查找方式不同,精确匹配采用遍曆法進行查找,近似匹配采用二分法查找。
精确匹配較簡單,會對數據源逐一匹配,找到為止。
近似匹配則要求數據源按升序排列,且會查找到與目标值相同或接近但較小的值,比如:
如果不按升序排列,會怎樣呢?來看個例子吧,顯然下圖中VLOOKUP函數引用的數據源首列(B列)未按升序排,這時,查找數值“55”對應的編号時,會查找到“M”:
差很遠是吧?怎麼回事兒呢,這就要說說二分法了。
1二分法簡介
使用了近似匹配,函數就會按二分法進行查找,所謂二分法,就是先查找二分位處,當不匹配的時候再進行下一個二分位查找,直到查找到目标數值為止。
2二分法的計算原理
看一下具體過程,就會了解二分法的計算原理了。
■ 第1次二分位
由于有20個數據,第1次二分位在第10個,查找到38,小于目标值55,再往下查找。
■ 第2次二分位
第2次二分法,後10個數據的二分位在第15位,查找到85,大于目标值55,再往上查找。
■ 第3次二分位
第3次二分位在第12個,查找到31,小于目标值55,再往下查找。
■ 第4次二分位
第4次二分位在第13個,查找到19,小于目标值55,再往下查找。
■ 第5次二分位
第5次二分位在第14個,查找到81,大于目标值55,返回上一次二分位結果。
知道了這個過程,就很好理解數據源為什麼要按升序排列了。
3知識拓展
除了VLOOKUP和HLOOKUP函數,MATCH和LOOKUP也會用到二分法,原理相同。
二分法比遍曆法複雜,但也有兩個比較明顯的優勢:一是對大量數據進行查找時速度比遍曆法要快不少,二是可以進行區域查找。
所以,千萬不要因為複雜就讨厭它喲,需要的時候,人家也是個給力的好幫手呐~
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!