位置:首頁 > 軟件操作教程 > 辦公軟件 > Excel > 問題詳情

如何通過IF({1,0}和VLOOKUP函數(shù)實(shí)現(xiàn)Excel的雙條件多條件查找?

提問人:周麗平發(fā)布時(shí)間:2021-08-16

在Excel中,通過VLOOKUP函數(shù)可以查找到數(shù)據(jù)并返回?cái)?shù)據(jù)。不僅能跨表查找,同時(shí),更能跨工作薄查找。

但是,VLOOKUP函數(shù)一般情況下,只能實(shí)現(xiàn)單條件查找。

如果想通過VLOOKUP函數(shù)來實(shí)現(xiàn)雙條件查找或多條件的查找并返回值,那么,只需要加上IF({1,0}就可以實(shí)現(xiàn)。

下面,就一起來看看IF({1,0}和VLOOKUP函數(shù)的經(jīng)典結(jié)合使用例子吧。

要實(shí)現(xiàn)的功能是,根據(jù)Sheet1中的產(chǎn)品類型和頭數(shù),找到Sheet2中相對(duì)應(yīng)的產(chǎn)品類型和頭數(shù),并獲取對(duì)應(yīng)的價(jià)格,然后自動(dòng)填充到Sheet1的C列。實(shí)現(xiàn)此功能,就涉及到兩個(gè)條件了,兩個(gè)條件都必須同時(shí)滿足。

如下圖,是Sheet1表的數(shù)據(jù),三列分別存放的是產(chǎn)品類型、頭數(shù)和價(jià)格。

image.png

上圖是一張購買產(chǎn)品的表,其中,購買產(chǎn)品的行數(shù)據(jù),可能存在重復(fù)。如上圖的10頭三七,就是重復(fù)數(shù)據(jù)。

現(xiàn)在,再來看第二張表Sheet2。

image.png

上表,是固定好的不存在任何重復(fù)數(shù)據(jù)的產(chǎn)品單價(jià)表。因?yàn)槊糠N三七頭對(duì)應(yīng)的頭數(shù)是不相同的,如果要找三七頭的單價(jià),那么,要求類型是三七頭,同時(shí)還要對(duì)應(yīng)于頭數(shù),這就是條件。

現(xiàn)在,我們在Sheet1中的A列輸入三七頭,在B列輸入頭數(shù),然后,利用公式自動(dòng)從Sheet2中獲取相對(duì)應(yīng)的價(jià)格。這樣就免去了輸入的麻煩。

公式比較復(fù)雜,因?yàn)殡y于理解,先看下圖吧,是公式的應(yīng)用實(shí)例。

image.png

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

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

請(qǐng)注意,如上的公式是數(shù)組公式,輸入的方法是,先輸入

=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組合鍵,才會(huì)出現(xiàn)大括號(hào)。大括號(hào)是通過組合鍵按出的,不是通過鍵盤輸入的。

公式解釋:

①VLOOKUP的解釋

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

VLOOKUP(查找值,在哪里找,找到了返回第幾列的數(shù)據(jù),邏輯值),其中,邏輯值為True或False。

再對(duì)比如上的公式,不能發(fā)現(xiàn)。

A2&B2相當(dāng)于要查找的值。等同于A2和B2兩個(gè)內(nèi)容連接起來所構(gòu)成的結(jié)果。所以為A2&B2,理解為A2合上B2的意思。

IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)相當(dāng)于要查找的數(shù)據(jù)

2代表返回第二列的數(shù)據(jù)。最后一個(gè)是False。



②IF({1,0}的解釋

IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)相當(dāng)于VLOOKUP函數(shù)中的查找數(shù)據(jù)的范圍。

由于本例子的功能是,根據(jù)Sheet1中的A列數(shù)據(jù)和B列數(shù)據(jù),兩個(gè)條件,去Sheet2中查找首先找到對(duì)應(yīng)的AB兩列的數(shù)據(jù),如果一致,就返回C列的單價(jià)。

因此,數(shù)據(jù)查找范圍也必須是Sheet2中的AB兩列,這樣才能被找到,由于查找數(shù)據(jù)的條件是A2&B2兩個(gè)單元格的內(nèi)容,但是此二單元格又是獨(dú)立的,因此,要想構(gòu)造查找范圍,也必須把Sheet2中的AB兩列結(jié)合起來,那就構(gòu)成了Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12;

Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12:相當(dāng)于AB兩列數(shù)據(jù)組成一列數(shù)據(jù)。

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

IF({1,0},相當(dāng)于IF({True,False},用來構(gòu)造查找范圍的數(shù)據(jù)的。最后的Sheet2!$C$2:$C$12也是數(shù)據(jù)范圍。

現(xiàn)在,整個(gè)IF({1,0},Sheet2!$A$2:$A$12&Sheet2!$B$2:$B$12,Sheet2!$C$2:$C$12)區(qū)域,就形成了一個(gè)數(shù)組,里面存放兩列數(shù)據(jù)。

第一列是Sheet2AB兩列數(shù)據(jù)的結(jié)合,第二列數(shù)據(jù)是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)}中的數(shù)字2,代表的是返回?cái)?shù)據(jù)區(qū)域中的第二列數(shù)據(jù)。結(jié)果剛好就是Sheet2的C列,即第三列。因?yàn)樵贗F({1,0}公式中,Sheet2中的AB兩列,已經(jīng)被合并成為一列了,所以,Sheet2中的第三列C列,自然就成為序列2的列編號(hào)了,所以,完整的公式中,紅色的2代表的就是要返回第幾列的數(shù)據(jù)。

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

=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)


繼續(xù)查找其他問題的答案?

回復(fù)(0)
返回頂部