Excel技巧之——LOOKUP函數(shù)示例3
LOOKUP函數(shù)主要用于在查找范圍中查詢指定的值,并返回另一個(gè)范圍中對(duì)應(yīng)位置的值,其查詢?cè)砼cVLOOKUP函數(shù)和HLOOKUP函數(shù)中當(dāng)?shù)谒膫€(gè)參數(shù)為1或true時(shí)非常相似。 示例1:無序查找 假設(shè)
LOOKUP函數(shù)主要用于在查找范圍中查詢指定的值,并返回另一個(gè)范圍中對(duì)應(yīng)位置的值,其查詢?cè)砼cVLOOKUP函數(shù)和HLOOKUP函數(shù)中當(dāng)?shù)谒膫€(gè)參數(shù)為1或true時(shí)非常相似。
示例1:無序查找
假設(shè)表格中的姓名列未進(jìn)行排序,在使用VLOOKUP函數(shù)進(jìn)行模糊查找時(shí)會(huì)返回#N/A錯(cuò)誤。我們可以使用LOOKUP函數(shù)來代替進(jìn)行查找。LOOKUP函數(shù)的用法主要利用了其內(nèi)部數(shù)組運(yùn)算的原理。
具體操作如下:
- 在B12單元格輸入公式:
LOOKUP(B11, B2:D9, 2) - 結(jié)果返回#N/A錯(cuò)誤,表示找不到。實(shí)際上,B11的數(shù)據(jù)在數(shù)據(jù)表中確實(shí)存在,只是由于數(shù)據(jù)表姓名列未進(jìn)行排序,同時(shí)VLOOKUP函數(shù)采取了模糊查找方式而導(dǎo)致此錯(cuò)誤。
- 因此,可以使用LOOKUP函數(shù)來代替進(jìn)行查找。
在C12單元格輸入公式:LOOKUP(1, 0/(B2:B9B11), C2:C9),回車即可返回正確結(jié)果。
這個(gè)公式的主要原理是先比較姓名與表格中的姓名范圍,如B2:B9B11,比較結(jié)果為數(shù)組{FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE}。然后利用0除以這個(gè)內(nèi)部數(shù)組,結(jié)果為數(shù)組{#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;#DIV/0!;0;#DIV/0!}。最后在這個(gè)數(shù)組中查找數(shù)值1(參數(shù)1),返回?cái)?shù)組中小于等于參數(shù)1的最大值(本例為0)的位置(姓名列的第7行)。最后LOOKUP函數(shù)返回參數(shù)3相同位置的數(shù)據(jù)(本例為綜合部)。這種算法是LOOKUP函數(shù)在無序查找中的典型用法,目前已被廣泛應(yīng)用。
示例2:查找最后非空值
利用LOOKUP函數(shù)的近似查找原理,我們可以實(shí)現(xiàn)返回查找范圍中的非空數(shù)值,而且還可以適用于二維區(qū)域或數(shù)組。
具體操作如下:
- 在I2單元格輸入公式:
LOOKUP(CHAR(65535), A:A) - 回車即可得到A列最后一個(gè)非空單元格的值。
由于LOOKUP函數(shù)必須查找盡可能大的值,因此只能使用CHAR(65535)這個(gè)最接近最大文本的值來進(jìn)行查找。
同理,在I3單元格輸入公式:LOOKUP(9E 307, B:B),回車即可得到B列最后一個(gè)非空值(數(shù)值)。9E 307是最接近Excel允許的最大數(shù)值的數(shù)值。