首頁 > 軟體

通過IF({1,0}和VLOOKUP函數實現Excel的雙條件多條件查詢的方法

2020-07-14 14:34:23

在Excel中,通過VLOOKUP函數可以查詢到資料並返回資料。不僅能跨表查詢,同時,更能跨工作薄查詢。

但是,VLOOKUP函數一般情況下,只能實現單條件查詢。

如果想通過VLOOKUP函數來實現雙條件查詢或多條件的查詢並返回值,那麼,只需要加上IF({1,0}就可以實現。

下面,就一起來看看IF({1,0}和VLOOKUP函數的經典結合使用例子吧。

要實現的功能是,根據Sheet1中的產品型別和頭數,找到Sheet2中相對應的產品型別和頭數,並獲取對應的價格,然後自動填充到Sheet1的C列。實現此功能,就涉及到兩個條件了,兩個條件都必須同時滿足。

如下圖,是Sheet1表的資料,三列分別存放的是產品型別、頭數和價格。

上圖是一張購買產品的表,其中,購買產品的行資料,可能存在重複。如上圖的10頭三七,就是重複資料。

現在,再來看第二張表Sheet2。

上表,是固定好的不存在任何重複資料的產品單價表。因為每種三七頭對應的頭數是不相同的,如果要找三七頭的單價,那麼,要求型別是三七頭,同時還要對應於頭數,這就是條件。

現在,我們在Sheet1中的A列輸入三七頭,在B列輸入頭數,然後,利用公式自動從Sheet2中獲取相對應的價格。這樣就免去了輸入的麻煩。

公式比較複雜,因為難於理解,先看下圖吧,是公式的應用範例。

下面,將給大家大體介紹公式是如何理解的。比如C2的公式為:

{=VLOOKUP(A2&B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE)}

請注意,如上的公式是陣列公式,輸入的方法是,先輸入

=VLOOKUP(A2&B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE) 之後,再按新Ctrl+Shift+Enter組合鍵,才會出現大括號。大括號是通過組合鍵按出的,不是通過鍵盤輸入的。

公式解釋:

①VLOOKUP的解釋

VLOOKUP函數,使用中文描述語法,可以這樣來理解。

VLOOKUP(查詢值,在哪裡找,找到了返回第幾列的資料,邏輯值),其中,邏輯值為True或False。

再對比如上的公式,不能發現。

A2&B2相當於要查詢的值。等同於A2和B2兩個內容連線起來所構成的結果。所以為A2&B2,理解為A2合上B2的意思。

IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)相當於要查詢的資料

2代表返回第二列的資料。最後一個是False。

關於VLOOKUP函數的單條件查詢的簡單應用,您可以參閱文章:

使用VLOOKUP函數單條件查詢的方法

http://www.officezhushou.com/vlookup/5524.html

②IF({1,0}的解釋

IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)相當於VLOOKUP函數中的查詢資料的範圍。

由於本例子的功能是,根據Sheet1中的A列資料和B列資料,兩個條件,去Sheet2中查詢首先找到對應的AB兩列的資料,如果一致,就返回C列的單價。

因此,資料查詢範圍也必須是Sheet2中的AB兩列,這樣才能被找到,由於查詢資料的條件是A2&B2兩個單元格的內容,但是此二單元格又是獨立的,因此,要想構造查詢範圍,也必須把Sheet2中的AB兩列結合起來,那就構成了Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12;

Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12:相當於AB兩列資料組成一列資料。

那麼,前面的IF({1,0}代表什麼意思呢?

IF({1,0},相當於IF({True,False},用來構造查詢範圍的資料的。最後的Sheet2!$C$2:$C$12也是資料範圍。

現在,整個IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)區域,就形成了一個陣列,裡面存放兩列資料。

第一列是Sheet2AB兩列資料的結合,第二列資料是Sheet2!$C$2:$C$12。

公式{=VLOOKUP(A2&B2,IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE)}中的數位2,代表的是返回資料區域中的第二列資料。結果剛好就是Sheet2的C列,即第三列。因為在IF({1,0}公式中,Sheet2中的AB兩列,已經被合併成為一列了,所以,Sheet2中的第三列C列,自然就成為序列2的列編號了,所以,完整的公式中,紅色的2代表的就是要返回第幾列的資料。

上面的完整的公式,可以使用如下兩種公式來替代:

=VLOOKUP(A2&B2,CHOOSE({1,2},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE)

=VLOOKUP(A2&B2,IF({TRUE,FALSE},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12),2,FALSE)


IT145.com E-mail:sddin#qq.com