在excel工作中,對於數據的信息查詢是非常常見的。
如圖中案例,現在有一個學生成績數據,其中有很多個班級混在一起,現在如何自動提取每一個班級的第一名學生信息呢?
首先,我們來分析一下工作思路:
這裡第一名的條件是「總分第一」,因此我們第一步要找出每一個班級的總分最高值。
由於是多個班級混合在一起,還要先篩選出符合條件的班級,可以先對A列進行條件判斷,並將判斷結果與總分相乘,這樣符合條件判斷的,就返回總分結果(因為符合條件,結果=1,1*總分還是總分);不符合條件判斷的,就返回0(因為不符合條件,結果=0,0*總分就是0)。
然後,用large函數將這個數組結果中的最大值取出來,就是每一個班級的總分第一了,也就是獲得了L列的值。
有了L列的值,我們再用lookup函數,根據班級(H列)及總分(L列)兩個條件值,就能查詢出對應的學生姓名,以及語文、數學的成績了。
我們來看一下函數公式:
L2單元格的公式為
=LARGE(($A$2:$A$29=H2)*($E$2:$E$29),1)
將A列值與H2進行判斷,等於H2的就返回1,錯誤的就返回0,再用1、0去乘以對應的總分,最後再用large函數去除最大的總分,也就是每個班級的總分第一。
由於公式要下拉填充,而公式裡班級區域、總分區域都應該是固定的,因此要加上絕對引用。
有了H2、L2的值,我們用lookup函數的多條件查找用法,就可以輕鬆查出對應的學生姓名。
I2單元格公式為
=LOOKUP(1,0/(($A$2:$A$29=H2)*($E$2:$E$29=L2)),$B$2:$B$29)
1,0這部分是固定的,然後分母下面是兩個條件相乘,代表兩個條件要同時滿足。當兩個條件同時滿足時,返回對應的B列值,也就是學生姓名。
為避免下拉填充出錯,所以同樣要將A列、E列、B列區域全部用絕對引用。
同理,只需要將函數公式末尾的返回值區域由B列改為C列、D列,就能查詢到對應的語文、數學成績。
最終,所有結果都自動查詢成功了。