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:強大而美妙的數組公式

TAG:公式 | 理解 | Excel | 查找 |