眾所周知,vlookup只能從左向右查找,而不能從右至左的反向查找。為此高手們設計了一個讓無數新手迷惑的公式。今天小編將徹底幫同學們解開這個迷團。
【例】如下圖所示要求根據姓名反查工號
公式:
=VLOOKUP(A9,IF({1,0},B2:B6,A2:A6),2,0)
公式中最難理解的就是IF({1,0},B2:B6,A2:A6),這也是今天小編要講解的要點。
{1,0}是什麼?它是一個由兩個數字構成的常量數組。如果放在單元格里,相當於2列1行的數據範圍(數組中列用","逗號分隔)。
IF函數的用法
IF(判斷式,如果條件成立返回的值,如果條件不成立返回的值)
判斷式是可以返回true或false的表達式,也可以是返回非零的數字或0的表達式或值。非零數字如1表示條件成立,0表示條件不成立。
如:
IF(1,100,200) 返回100
IF(0,100,200) 返回200
而
IF({1,0},100,200)呢?由一個數替換成一組數。IF會分別用1和0作為第1個參數進行計算,也就是說會進行2次計算,返回2個結果,分別是 100 和200。返回的2個數也會按{1,0]的格式擺放(1行2列),即:{100,200}
而
如果100和200不是一個值,而各為一組值呢?如本例中
IF({1,0},B2:B6,A2:A6)
返回的將不是一組2個值,而是2列5行的一組值。如果放在單元格區域中,應該是這樣子的:
其實也可以這樣理解
IF({1,0},B2:B6,A2:A6),
把B2:B6的值放在1的位置,把A2:A6的值放在0的位置。重構成一個2列5行的數組,只是原B列放在第1列,A列放在第2列了。
兩列數調換了位置,就可以用VLOOKUP的從左向右查找了。
注:說到底,並不是vlookup函數可以實現反向查找,而是if({1,0}把兩列數調換了位置而已。