解析VLOOKUP逆向查詢解決方法之if(「1,0」)

使用VLOOKUP函式的時候有沒有遇到所要求返回的結果在前面時就會出問題,比如下面的情況,結果會返回錯誤#N/A

解析VLOOKUP逆向查詢解決方法之if(「1,0」)

這是因為VLOOKUP函式查詢結果時,要求返回的結果區域必須在查詢的條件區域的後方,也就是右邊,否則無法查詢到相應的結果。

一般人到這裡的時候會選擇加一個輔助列,比如在返回結果的那一列前面插入一列,將條件區域的那一列複製過去,比如下面的方式,這個方式的缺點就是會破壞表的結構:

解析VLOOKUP逆向查詢解決方法之if(「1,0」)

還有些人會選擇其他方式比如用INDEX函式來實現,這裡我就不做演示了,重點說一下,在不改變表的結構下使用VLOOKUP函式如何實現的問題。

我在G3單元格輸入=VLOOKUP(E3,IF({1,0},B2:B6,A2:A6),2,FALSE),就可以得到相應的結果:

解析VLOOKUP逆向查詢解決方法之if(「1,0」)

那可以實現的關鍵點就是{1,0},之前提到過大括號{}就是陣列,而這個地方都是固定數字,也就是常量陣列。

具體介紹之前我先給大家演示一下,我使用的365版本,如果是2019等低版本是沒有這個效果的,365版本可以有助於我們理解陣列。我分別輸入={1,2,3,4}和={1;2;3;4},我們可以看到={1,2,3,4}是橫向排列的4個數據,={1;2;3;4}則是縱向排列的四個資料,其實就是間隔的符號不一樣就有不同的結果,橫向的用逗號,縱向就使用分號,如果在低版本的EXCEL中使用只返回結果1,這個大家可以不用太在意,實際在公式應用中是不受影響的。

解析VLOOKUP逆向查詢解決方法之if(「1,0」)

透過上面的演示我們可以知道陣列我們需要用{1,0},而不是使用{1;0},接下來我們理解下1和0的含義,1,0在這裡其實是邏輯值,相當於TRUE和FALSE,我們可以用之前分享的最短的函式N函式來計算TRUE和FALSE的結果,我們輸入=N(TRUE)和=N(FALSE)可以得到結果1和0。

解析VLOOKUP逆向查詢解決方法之if(「1,0」)

if(如果為TRUE,TRUE返回結果,FALSE)返回結果,這裡透過陣列{1,0},我們知道這個陣列是橫向的,而B2:B6和A2:A5明顯是縱向的,我們利用365版本做下陣列的演示,我輸入={1,1}+{1;2;3;4},我們可以得到一個結果,就是兩列的結果,那就是說{1,1}兩個都與{1;2;3;4}進行了求和,所以得到了兩列資料。如果是兩個橫向的陣列或兩個縱向的陣列求和則不會。

橫向陣列與縱向陣列相加的結果

解析VLOOKUP逆向查詢解決方法之if(「1,0」)

相同方向陣列的求和

解析VLOOKUP逆向查詢解決方法之if(「1,0」)

透過上面的演示想必大家應該有一定感覺了吧,還是回到IF({1,0},B2:B6,A2:A6),我做下演示:

解析VLOOKUP逆向查詢解決方法之if(「1,0」)

我覺得可以理解為{1,0},1的情況下if(TRUE,返回了B2:B6)在前面一列,0的情況下if(FALSE,返回了C2:C6)

如果大家喜歡我的文章,歡迎關注微信公眾號:

跟我學EXCEL圖表