Excel 中的 vlookup函數可結合 if 多條件查找,並且可用數組作為 if 的條件,這樣可以同時查找多個字段,例如查找服裝銷量表中分類為襯衫且價格為85元的服裝。文章先列舉了四個vlookup函數的多條件操作實例,然后對它們逐一剖析,主要剖析if{1,0}數組條件;四個操作實例分別為:實例1:條件用 IF{1,0}、實例2:條件用 IF{0,1}、實例3:兩列連接查找,條件用 IF{1,0}與用 & 連接查找區域和實例4:兩列連接查找,條件用 IF{0,1}與用 & 連接查找區域。實例中操作所用版本均為 Excel 2016。
一、Excel vlookup函數的多條件操作實例
(一)實例1:條件用 IF{1,0}
1、假如要從服裝銷量表中找出價格為85元的服裝名稱。在 A12 單元格中輸入要查找的價格,例如 85,把公式 =VLOOKUP(A12,IF({1,0},C2:C9,B2:B9),2,0) 復制到 B12 單元格,按回車,則返回“粉紅短袖襯衫”,這件襯衫的價格恰好是 85 元,說明結果正確;操作過程步驟,如圖1所示:

提示:若表格中有多件85元的服裝,則vlookup函數只返回第一件符合條件的服裝。
2、公式簡析(詳細剖析見下文)
公式中查找區域為 IF 數組條件,數組由 1 和 0 組成,1 表示 True(真),0 表示 False(假);執行公式時,先從數組中取 1,由於 1 為真,所以從 C2:C9 中返回一個值;然后再從數組中取 0,由於 0 為假,所以從 B2:B9 中返回一個值;如此反復,直到遍歷完 C2 到 C9 與 B2 到 B9。
(二)實例2:條件用 IF{0,1}
1、同樣要從服裝銷量表中找出價格為85元的服裝名稱。在 A13 單元格輸入 85,把公式 =VLOOKUP(A13,IF({0,1},B2:B9,C2:C9),2,0) 復制到 B13 單元格,按回車,則同樣返回“粉紅短袖襯衫”,與實例1的結果一樣,操作過程步驟,如圖2所示:

2、公式簡析
公式與實例1相比,IF 的數組條件與只是把 1 和 0 交換了次序,由 {1,0} 變為 {0,1};公式執行時,先從數組中取出 0,由於 0 為假,所以從 C2 到 C9 中返回一個值;然后再從數組中取 1,由於 1 為真,所以從 B2 到 B9 中返回一個值;如此反復,直到遍歷完 B2 到 B9 與 C2 到 C9。從執行過程來看,取出值的順序與實例1完全一樣,因此返回同一個結果。
(三)實例3:兩列連接查找,條件用 IF{1,0}與用 & 連接查找區域
1、假如要從服裝銷量表中找出“小類”為“襯衫”、“價格”為85元的服裝名稱。在 A12 輸入“襯衫”,B12 輸入 85,把公式 =VLOOKUP(A12&B12,IF({1,0},D2:D9&E2:E9,B2:B9),2,0) 復制到 C12,按 Ctrl + Shift + 回車,則返回服裝名稱同樣為“粉紅短袖襯衫”,操作過程步驟,如圖3所示:

2、公式說明:
A12&B12 是要查找的值,A12 與 B12 用連接符號 & 連接起來,結果為“襯衫85”;查找區域的條件同樣用 {1,0} 數組條件;公式執行時,先取 1,由於 1 為真,所以從 D2:D9&E2:E9 中返回一個連結值(例如 D2&E2);然后取 0,由於 0 是假,所以從 B2:B9 中取一個值取來;如此反復,直到遍歷完 D2&E2 到 D9&E9 與 B2 到 B9。
(四)實例4:兩列連接查找,條件用 IF{0,1}與用 & 連接查找區域
1、同樣要從服裝銷量表中找出“小類”為“襯衫”、“價格”為85元的服裝名稱。在 A13 輸入“襯衫”,B13 輸入 85,如圖4所示:

2、把公式 =VLOOKUP(A13&B13,IF({0,1},B2:B9,D2:D9&E2:E9),2,0) 復制到 C13 單元格,如圖5所示:

3、按 Ctrl + Shift + 回車,同樣返回與實例3一樣的服裝“粉紅短袖襯衫”,如圖6所示:

4、公式說明:
與實例3相比,實例4只是 IF 的數組條件由 {1,0} 變為 {0,1},IF 條件的真假返回值相互調換,即 D2:D9&E2:E9 與 B2:B9 的位置相互調換。經此調換,公式執行所返回的值與實例3一樣,所以能查到與實例3一樣的結果。
二、Excel vlookup函數與if{1,0}數組組合剖析
(一)實例1剖析
公式為:=VLOOKUP(A12,IF({1,0},C2:C9,B2:B9),2,0)
1、Excel 橫向數組與縱向數組的區別。橫向數組是占一行兩列,元素之間用“,”分隔,例如 {1,0} 為橫向數組;縱向數組占一列兩行,元素之間用“;”分隔,例如 {1;0} 為縱向數組。
2、if 條件分解
由於 {1,0} 為橫向數組,C2:C9 與 B2:B9 之間共有八行,因此 IF 的三個參數要分為八組,即:
參數1分解為:{1,0; 1,0; 1,0; 1,0; 1,0; 1,0; 1,0; 1,0;}
參數2分解為:{C2,C2; C3,C3; C4,C4; C5,C5; C6,C6; C7,C7; C8,C8; C9,C9;}
參數3分解為:{B2,B2; B3,B3; B4,B4; B5,B5; B6,B6; B7,B7; B8,B8; B9,B9; }
3、公式執行時,if 條件組合
A、第一次執行,分別從三個參數中取第一個元素(即從參數1中取 1,從參數2中取 C2,從參數3中取 B2),組成 IF(1,C2,B2),由於 1 為真,所以取 C2。
B、第二次執行,分別從三個參數中取第二個元素,組成 IF(0,C2,B2),由於 0 為假,所以取 B2。
C、第三次執行,分別從三個參數中取第三個元素,組成 IF(1,C3,B3),由於 1 為真,所以取 C3。
D、以此類推,直到遍歷完 C2 到 C9 和 B2 到 B9。
(二)實例2剖析
公式為:=VLOOKUP(A13,IF({0,1},B2:B9,C2:C9),2,0)
實例2 與實例1 只是數組元素 1 和 0及真假條件調換了位置,剖析方法與實例1一樣。
1、if 條件分解
由於 {0,1} 同樣為橫向數組,B2:B9 與 C2:C9 之間共有八行,因此 IF 的三個參數要分為八組,即:
參數1分解為:{0,1; 0,1; 0,1; 0,1; 0,1; 0,1; 0,1; 0,1;}
參數2分解為:{B2,B2; B3,B3; B4,B4; B5,B5; B6,B6; B7,B7; B8,B8; B9,B9; }
參數3分解為:{C2,C2; C3,C3; C4,C4; C5,C5; C6,C6; C7,C7; C8,C8; C9,C9;}
2、公式執行時,if 條件組合
A、第一次執行,分別從三個參數中取第一個元素,組成 IF(0,B2,C2),由於 0 為假,所以取 C2。
B、第二次執行,分別從三個參數中取第二個元素,組成 IF(1,B2,C2),由於 1 為真,所以取 B2。
C、第三次執行,分別從三個參數中取第三個元素,組成 IF(0,B3,C3),由於 0 為假,所以取 C3。
D、以此類推,直到遍歷完 B2 到 B9 和 C2 到 C9。從執行的結果來看,實例2與實例1每次執行返回的結果一樣。
(三)實例3剖析
公式為:=VLOOKUP(A12&B12,IF({1,0},D2:D9&E2:E9,B2:B9),2,0)
實例3 與實例1 的原理是一樣的,只是實例3的查找值和查找范圍用連接符號 & 把兩列連接成一列,剖析方法與實例1也一樣。
1、if 條件分解
由於 {1,0} 為橫向數組,D2&E2 到 D9&E9 與 B2 到 B9 之間共有八行,因此 IF 的三個參數要分為八組,即:
參數1分解為:{1,0; 1,0; 1,0; 1,0; 1,0; 1,0; 1,0; 1,0;}
參數2分解為:{D2&E2,D2&E2; D3&E3,D3&E3; D4&E4,D4&E4; D5&E5,D5&E5; D6&E6,D6&E6; D7&E7,D7&E7; D8&E8,D8&E8; D9&E9,D9&E9;}
參數3分解為:{B2,B2; B3,B3; B4,B4; B5,B5; B6,B6; B7,B7; B8,B8; B9,B9; }
2、公式執行時,if 條件組合
A、第一次執行,分別從三個參數中取第一個元素,組成 IF(1,D2&E2,B2),由於 1 為真,所以取 D2&E2。
B、第二次執行,分別從三個參數中取第二個元素,組成 IF(0,D2&E2,B2),由於 0 為假,所以取 B2。
C、第三次執行,分別從三個參數中取第三個元素,組成 IF(1,D3&E3,B3),由於 1 為真,所以取 D3&E3。
D、以此類推,直到遍歷完 D2&E2 到 D9&E9 與 B2 到 B9。
實例4與實例2和實例3類似,剖析方法也相同,可以自己嘗試剖析以加深理解。