VLOOKUP函數(shù)是使用最多的Excel函數(shù)之一,能夠查找到第一個值并返回對應的值,,然而,,如果查找的項有多個,如何查找到最后一個值呢,? 舉個例子,,如下圖1所示的數(shù)據(jù),要查找“員工15”的最后一項工作任務,。 圖1 下面列舉幾種常用的方法,,供大家參考。 方法1:找到要查找的最后一項任務所在的位置,,并獲取其值,。 先將單元格區(qū)域A2:A16中的值與要查找的值(在單元格E2中)相比較,最后相同的值肯定其對應的行號最大,。 A2:A16=E2 得到數(shù)組: {FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE} ROW(A2:A16) 得到數(shù)組: {2;3;4;5;6;7;8;9;10;11;12;13;14;15;16} 將上述數(shù)組作為IF函數(shù)的參數(shù): IF({FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE},{2;3;4;5;6;7;8;9;10;11;12;13;14;15;16},0) 得到數(shù)組: {0;0;0;0;0;0;0;9;10;11;0;0;0;0;0} 取其最大值: MAX({0;0;0;0;0;0;0;9;10;11;0;0;0;0;0}) 得到: 11 即為所查找值對應的最后一項所在位置,。 傳遞組INDEX函數(shù)取值: =INDEX(B1:B16,11) 因此,完整的公式為: =INDEX(B1:B16,MAX(IF(A2:A16=E2,ROW(A2:A16),0))) 這是一個數(shù)組公式,,輸入完后要按Ctrl+Shift+Enter組合鍵,。 或者,數(shù)組公式: =INDEX(B2:B16,MAX(ROW(A1:A16)*(A1:A16=E2))-ROW(A1)) 其原理相同,,只是使用了乘法代替上面公式中的IF函數(shù),。 或者,,數(shù)組公式: =INDIRECT('B'&LARGE(IF(A1:A16=E2,ROW(A1:A16)),1)) 找到要獲取的值的單元格位置,使用INDIRECT函數(shù)取其值,。 方法2:經(jīng)典的LOOKUP函數(shù)公式,。 =LOOKUP(2,1/(A2:A16=E2),B2:B16) 利用LOOKUP函數(shù)的特性,找取最后一個出現(xiàn)的值,,并將其取出,。 還有其它的方法嗎?歡迎留言,。 注:有興趣的朋友可以到知識星球完美Excel社群下載本文配套示例工作簿,。 歡迎到知識星球:完美Excel社群,進行技術交流和提問,,獲取更多電子資料,,并通過社群加入專門的微信討論群,更方便交流,。 |
|
來自: hercules028 > 《excel》