Excel VBA 使用Lookup注意事項,為什麼出來的數值,跟自己想要的不一樣

下述的圖片不難理解,但是出來的數值,跟自己想要的不一樣
重點在於
1、索引值必需是「唯一值」
2、索引值,要先做排序動作
1
2
3
4
5
6
7


8



9



10



11
ABC
頻率色彩
4.14紅色
4.19橙色
5.17黃色
5.77綠色
6.39藍色
公式描述結果
=LOOKUP(4.19,A2:A6,B2:B6)在欄 A 查詢 4.19,並從同一列的欄 B 傳回值。橙色
=LOOKUP(5.00,A2:A6,B2:B6)在欄 A 查詢 5.00,符合次小值 (4.19),並從同一列的欄 B 傳回值。橙色
=LOOKUP(7.66,A2:A6,B2:B6)在欄 A 查詢 7.66,符合次小值 (6.39),並從同一列的欄 B 傳回值。藍色
=LOOKUP(0,A2:A6,B2:B6)在欄 A 查詢 0,並傳回錯誤,因為 0 小於 lookup_vector A2:A7 中的最小值。#N/A




1
2
3
4
5












6












7
ABC
成績
45
90
78
公式描述結果
=LOOKUP(A2,{0,60,70,80,90},{"F","D","C","B","A"})在陣列的第一列查詢 A2 (45) 的值,尋找小於或等於 (0) 的最大值,然後傳回陣列中相同一欄中,最後一列的值。F
=LOOKUP(A3,{0,60,70,80,90},{"F","D","C","B","A"})在陣列的第一列查詢 A3 (90) 的值,尋找小於或等於 (90) 的最大值,然後傳回陣列中相同一欄中,最後一列的值。A
=LOOKUP(A4,{0,60,70,80,90},{"F","D","C","B","A"})在陣列的第一列查詢 A4 (78) 的值,尋找小於或等於 (70) 的最大值,然後傳回陣列中相同一欄中,最後一列的值。C
=LOOKUP(A2,{0,60,63,67,70,73,77,80,83,87,90,93,97},{"F","D-","D","D+","C-","C","C+","B-","B","B+","A-","A","A+"})在陣列的第一列查詢 A2 (45) 的值,尋找小於或等於 (0) 的最大值,然後傳回陣列中相同一欄中,最後一列的值。F
=LOOKUP(A3,{0,60,63,67,70,73,77,80,83,87,90,93,97},{"F","D-","D","D+","C-","C","C+","B-","B","B+","A-","A","A+"})在陣列的第一列查詢 A3 (90) 的值,尋找小於或等於 (90) 的最大值,然後傳回陣列中相同一欄中,最後一列的值。A-
=LOOKUP(A4,{0,60,63,67,70,73,77,80,83,87,90,93,97},{"F","D-","D","D+","C-","C","C+","B-","B","B+","A-","A","A+"})在陣列的第一列查詢 A4 (78) 的值,尋找小於或等於 (77) 的最大值,然後傳回陣列中相同一欄中,最後一列的值。


留言

這個網誌中的熱門文章

歐姆龍 HEM-7600T 評價,購買心得分享(打臉文)

超任 三國志3代,登入武將金手指

年青人眼鏡評價(負評),辛酸血淚史分享文