Excel中逆向Vlookup查找if({1,0})公式理解
Vlookup函數是工作中天天要用到的函數,但它在原始數據中只能正向查找,不能直接逆向查找,需通過IF({1,0})進行輔助,很多朋友不理解公式,便記不住。
如下所示: 需要查找值是英雄,返回值是定位,正常需要在原始資料庫中返回值在查找值的右邊,但現在原始資料庫中的英雄在定位的後面。所以在E2使用的公式是:
=VLOOKUP(D2,IF({1,0},$B$1:$B$7,$A$1:$A$7),2,0)
大家不理解的是中間的IF({1,0},$B$1:$B$7,$A$1:$A$7)
正向查找匹配
當然,我們可以將原始數據進行複製剪切成正向的查找匹配=VLOOKUP(D2,$G$1:$H$7,2,0)
為了方便理解,不影響取消絕對引用,對比逆向和正向查找,發現IF({1,0},B1:B7,A1:A7)等同於G1:H7
我們對G1:H7公式進行框選按F9計算一次
得到的結果是:
我們看下對IF({1,0},B1:B7,A1:A7)的分解計算
對B1:B7和A1:A7進行F9一次計算
IF({1,0},數組1,數組2)可以轉換成兩個公式
IF(1,數組1,數組2) 返回的結果是豎向的數組1
IF(0,數組1,數組2) 返回的結果是豎向的數組2
1和0是用逗號拼在一塊,其實就是將兩個豎向的橫向連接在一塊。
從而形成了和實際存在一樣的兩列數組虛擬的存在,在Excel中叫做內存數組,它得到的結果和引用正向的區域結果是一樣的,我們再對IF函數內F9計算一次
所以使用公式:=VLOOKUP(D2,IF({1,0},$B$1:$B$7,$A$1:$A$7),2,0)
或=VLOOKUP(D2,$G$1:$H$7,2,0)都是一樣的
甚至還可以使用公式:
=VLOOKUP(D2,IF({0,1},$A$1:$A$7,$B$1:$B$7),2,0)
IF(0)得到的是B1:B7
IF(1)得到的是A1:A7
然後用逗號把兩列拼在一塊,形成一個內存數組
這樣原始數據中查找值在前,返回值在後,就得得到正確的結果。
本節完,不知道說了這麼多,有沒有說清楚,朋友們都理解了嗎?
-----------
推薦閱讀:
※多種Excel表格條件自動求和公式
※Excel公式與函數之美10:小而美的函數之LEN函數
※你見過嗎,上下兩重的Excel柱狀圖表趕緊收藏(絕密教程)
※Excel中的N函數用法兩例
※Excel揭秘11:強大而美妙的數組公式
