如何在Excel中根據兩個或多個條件查詢值?
本文詳細介紹了陣列公式,並描述了高階篩選器在Excel中查詢具有兩個或多個約束條件的值的方法。Excel高階篩選器的條件區域是工作表單元格的集合,其中輸入資料篩選規則。條件區域中的標題單元格和條件單元格必須具有特定的佈局。
Microsoft Excel中的垂直和水平查詢函式是特殊的函式,但經驗豐富的使用者通常會用INDEX MATCH替換它們,它在許多方面都優於VLOOKUP和HLOOKUP。除其他外,它可以向上搜尋列和行中的兩個或多個條件。
多種方法
我們提供了使用不同方法的解決方案
使用陣列公式。
使用高階篩選器
方法一:使用陣列公式
這裡,可以使用如下圖所示的學生記錄表和陣列公式1在Excel中根據兩個或多個引數查詢值。使用陣列公式,可以根據一個或多個條件確定學生的成績值。

步驟1
此問題的陣列公式如下所示
{=INDEX(array,MATCH(1,(criteria 1=lookup_array 1)*(criteria 2= lookup_array 2)…*(criteria n= lookup_array n),0))}
這裡,想要查詢Shivansh的成績和學號GA-007,可以將陣列公式放入單元格J9,然後同時按Ctrl + Shift + Enter鍵。
=INDEX(F5:F14,MATCH(1,(J5=B5:B14)*(J6=C5:C14),0))

注意:上述計算中,成績列查詢的值位於單元格F5:F14中。學號和學生姓名列分別為單元格B5:B14和單元格C5:C14。第一個條件(單元格J5)是學號,第二個條件(單元格J6)是學生姓名。
步驟2
陣列表示式的公式允許根據需要簡單地新增引數。例如,如果您正在查詢Shivansh的成績,其中Shivansh的分數是352,學號是GA-007,則可以包含如下所示的條件
=INDEX(F5:F14, MATCH(1,(J5=B5:B14)*(J6=C5:C14)*(J7=D5:D14),0))
此外,要獲得Shivansh的成績,請同時按Ctrl + Shift + Enter。

步驟3
以下是此陣列公式的基本表示式
=INDEX(array,MATCH(criteria1& criteria2…& criteriaN, lookup_array1& lookup_array2…& lookup_arrayN,0),0)
例如,在這種情況下,可以將給定的公式放入單元格J9,然後按Ctrl + Shift + Enter來確定分數為329且學號為GA-003的學生的成績。
=INDEX(F5:F14,MATCH(J5&J6,B5:B14&D5:D14,0),0)

注意:上述公式中的成績列是單元格F5:F14。學號列是B5:B14。分數列是單元格D5:D14。單元格J5是作為第一個條件的學號,單元格J6包含指定為第二個條件的分數。
步驟4
如果要使用三個或更多因素來確定值,則可以輕鬆地將條件和查詢陣列新增到MATCH部分。查詢陣列和條件必須順序相同,請注意這一點。
例如,我們想找出Pradeep的成績,分數為329,學號為GA-003,可以按如下方式新增查詢陣列和引數
然後依次按下Ctrl+Shift+Enter。
=INDEX(F5:F14,MATCH(J5&J6&J7,B5:B14&C5:C14&D5:D14,0),0)

方法二:使用高階篩選器
要檢索Excel中滿足關於公式的兩個或多個條件的所有值,請使用高階篩選器功能。請執行以下操作
步驟1
現在單擊“資料”選單,然後轉到“排序和篩選”下的“高階”選項以啟用“高階選擇”功能。

步驟2
開啟“高階篩選器”對話方塊後,在“操作”選項卡中選擇“複製到另一個位置”單選按鈕;

步驟3
單擊“列表區域”文字框,選擇單元格區域B4:F14以查詢值,如下所示

步驟4
現在單擊“條件區域”框,透過選擇區域I5:K6來查詢值。

步驟5
透過單擊“複製到”文字框,篩選的行將被放置在目標區域的第一個單元格I10中。

步驟6
現在單擊“確定”按鈕。如果滿足所有提到的條件,則篩選的行將被複制並放置在指定的限制中。

結論
在本文中,我們使用簡單的示例來演示如何在Excel中應用兩個或多個約束條件後獲得值。使用者使用乘法運算(用作陣列公式的AND運算子)來評估多個條件。藉助高階篩選器,您可以建立特殊的事物列表並將它們提取到工作表或工作簿中的另一個位置。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP