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