講了兩篇VLOOKUP函數的文章,今日繼續講這個專題,之所以講這麼多,是因為這個函數對於大眾來說,利用之廣泛,前所未有。雖然我不太贊成用此函數,原則是能不用就不用,可是這並不妨礙我細緻地給大家講解此函數的用法。今日講高級的查找方法,即多條件的查詢。
先看下面的例子:
上面的截圖中,想要查找到年齡為41的甲1的銷售業績,按照常規的做法是無論如何也實現不了的。那麼怎麼辦呢?這就是我今日要講的多值查詢的方法,思路就是藉助數組!
下面我們一起,一步一步地實現我們的目標:
在C19中錄入公式:{=VLOOKUP(A19&B19,IF({1,0},A2:A16&B2:B16,C2:C16),2,0) }
別忘了數組公式的錄入方法,是CTRL+SHIFT+ENTER結束錄入。
先看返回值,然後我們一步一步地講解:
公式:{=VLOOKUP(A19&B19,IF({1,0},A2:A16&B2:B16,C2:C16),2,0) }
我們先看公式計算的大概思路是怎能樣的:
1 我們的努力方向不是讓VLOOKUP本身實現多條件查找,而是想辦法重構一個數組。對於多個條件我們可以用&連接在一起,同樣兩列數值我們也可以連接成一列數據,然後用IF函數進行組合。
2 A19&B19 把兩個條件連接在一起,把它們做為一個整體進行查找。
3 A2:A16&B2:B16,和條件連接相對應,把人員和年齡列也連接在一起,作為一個待查找的整體。
4、IF({1,0}, A2:A16&B2:B16, C2:C16) 用IF把連接後的兩列與C列數據合併成一個兩列的內存數組。
5、完成了數組的重構後,接下來就是VLOOKUP的基本查找功能了。
下面我們看具體的計算過程,這個過程也是我寫函數以來最為小心的時候,儘可能不出差,之前小心翼翼的寫過一次,這次是更加小心了:
1 先計算A19&B19的值得出:「甲141」
公式變成:=VLOOKUP(「甲141」,IF({1,0},A2:A16&B2:B16,C2:C16),2,0)
2 計算A2:A16&B2:B16的值,得出:{ 「甲115」;「甲220」;「甲335」;「甲430」;「甲535」;「甲640」;「甲141」;「甲220」;「甲335」;「甲440」;「甲541」;「甲646」;「甲1347」;「甲1448」;「甲1549」 }
公式變成:
=VLOOKUP(「甲141」,IF({1,0},{ 「甲115」;「甲220」;「甲335」;「甲430」;「甲535」;「甲640」;「甲141」;「甲220」;「甲335」;「甲440」;「甲541」;「甲646」;「甲1347」;「甲1448」;「甲1549」 },C2:C16),2,0)
3 計算:{ 「甲115」;「甲220」;「甲335」;「甲430」;「甲535」;「甲640」;「甲141」;「甲220」;「甲335」;「甲440」;「甲541」;「甲646」;「甲1347」;「甲1448」;「甲1549」 },C2:C16)
的值,得到:
{ 「甲115」,110;「甲220」,160;「甲335」 ,150;「甲430」,140;「甲535」 ,130;「甲640」 ,120;「甲141」 ,110;「甲220」 ,100;「甲335」 ,90;「甲440」 ,100;「甲541」 ,110;「甲646」 ,120;「甲1347」 ,130;「甲1448」 ,140;「甲1549」 ,150 } 【兩列數組構建完成】
公式變成:
=VLOOKUP(「甲141」, { 「甲115」,110;「甲220」,160;「甲335」 ,150;「甲430」,140;「甲535」 ,130;「甲640」 ,120;「甲141」 ,110;「甲220」 ,100;「甲335」 ,90;「甲440」 ,100;「甲541」 ,110;「甲646」 ,120;「甲1347」 ,130;「甲1448」 ,140;「甲1549」 ,150 },2,0)
4 最後得出結果110
也許很多朋友看了上面的過程,不知所云,希望能仔細的研究一下,真的不是很難,掌握了這個方法,對於VLOOKUP函數的應用和數組的應用,都是受益匪淺。
今日內容回向:
1 實現多值查詢的思路是什麼?
2 數組在實現多值查詢過程中的作用是什麼?
分享成果,隨喜正能量