發布時間:2024-01-24閱讀(13)
今天跟大家介紹下使用index smalll if row函數組合進行一對多查詢,有小伙伴可能會問方法那么多為什么偏偏介紹這么復雜的函數組合呢,因為這個組合通用性最高,學會這個組合基本上所有的一對多查詢都可以使用這種組合來解決
我們先來看一下今天的例子

是不是覺得函數非常難,別著急,讓我們來一步一步剖析下,
1.判斷位置既然我們想用index函數進行一對多查詢就必須判斷2班在什么位置,哪一個函數具有這樣的功能呢,當然是if函數,如下圖

我們使用if函數并運用數組判斷在班級列等于2班的元素所在的位置,if函數第二參數為條件正確時返回的值,我們使用row函數取出2班所在的行號,因為不需要錯誤值我們可以省略第三參數。圖中標紅的區域為if函數運算結果
2.取出位置然后我們用small函數取出我們提取出來的行號

small函數用于在數組中提取元素,第一參數為數組區域,第二參數為想提取數數組中的第幾個元素,
我們用row(1:1),構建一個整數序列(即1,2,3,4,5,6,等的整數序列)
我們可以看到整個數組中一共就四個元素,所以當row函數到4時就可以提取出全部行號
如圖中藍色填充
3.得到結果最后我們用index函數返回相應的姓名

因為使用row獲取的行號是整個表格的行號,所以index函數的第一參數必須選擇整列否則結果不對
最后我們再使用IFERROR進行屏蔽錯誤值,不使用也是沒關系的
在這里需要說明的是我們運用的是數組公式,當公式輸入完成后需要按ctrl shift 回車三鍵填充,對函數以及數組還不了解的可以翻看我之前的文章
其實對于函數的使用最主要的還是邏輯性,要具有從點到面的思維能力,一步一步的得到自己想要的結果
最后再我們再來查詢下是2班且通過的姓名

公式如下
=IFERROR(INDEX(B:B,SMALL(IF(($A$2:$A$12=$G$3)*($C$2:$C$12="是"),ROW($A$2:$A$12)),ROW(1:1))),"")
怎么樣看懂了嗎,如果看懂了請在下方留言看懂了讓小編知道你學會了
你們的關注點贊和轉發是我持續更新的動力
歡迎分享轉載→http://www.avcorse.com/read-218674.html
Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖