今天我為大家講解下如何利用函數(shù)實現(xiàn)高級查詢篩選二(有同步視頻課大家可以查看),之前課程給大家講過,主要利用查詢函數(shù)VLOOKUP和邏輯函數(shù)IF實現(xiàn)查詢篩選功能,由于用到的函數(shù)比較少,自然邏輯上有些復雜,很多網(wǎng)友表示功能很強大,查詢效果也很好,看了好幾遍還是看不懂,接下來我把邏輯搞簡單一些,多用一些函數(shù)來實現(xiàn)查詢篩選功能,效果與之前一模一樣,我就不再展示了。 二、函數(shù)公式講解一 第一步:如圖所示,表1輸入查詢項“總監(jiān)后”,表2先用合并符號“&“將員工號、姓名、部門、崗位、電話、身份證號、是否在崗信息進行合并顯示在K列,再用函數(shù)公式“=IF(COUNTIF(K8,"*"&Sheet1!$A$2&"*")>0,"1","")”將K列數(shù)據(jù)與表1中A2數(shù)據(jù)進行比較,如果K列數(shù)據(jù)包含Sheet1!$A$2,即本例中“總監(jiān)”字符,則返回1否則返回空。表2中主要用到的函數(shù)COUNTIF主要就是條件統(tǒng)計的意思,即統(tǒng)計滿足條件的數(shù)據(jù)數(shù)量。 第二步:如圖所示,表1中,先通過函數(shù)=Sheet2!A8,將表2中A列數(shù)據(jù)搬運到表1中K列,再通過函數(shù)=IF($K8<>"",Sheet2!D8,""),將符合要求的數(shù)據(jù)顯示出來,即K列(相當于表2中的A列)不為空,則等于表2中相應單元格數(shù)據(jù),否則等于空。通過篩選,我們可以看到,符合要求的數(shù)據(jù)全部顯示出來,但是中間都有空白單元格,接下來通過函數(shù)=IFERROR(INDEX(P$2:P$30,SMALL($L$2:$L$30,ROW(F1))),""),將空白單元格去除掉。函數(shù)IFERROR之前講過,簡單講就是不顯示錯誤符號的意思,ROW(F1)等于單元格F1的行值,即1,則SMALL($L$2:$L$30,ROW(F1))相當于SMALL($L$2:$L$30,1),SMALL就是在某一列中取第幾小的數(shù)的意思,SMALL($L$2:$L$30,1)相當于在L列取第一小的數(shù),那自然是7,則INDEX(P$2:P$30,SMALL($L$2:$L$30,ROW(F1)))就相當于INDEX(P$2:P$30,7),INDEX是在某一列取第幾行數(shù)值的意思,則INDEX(P$2:P$30,7)相當于從P列P2單元格開始向下偏移7次,即取P8單元格數(shù)值。隨著公式的填充,依次會選取第2小的數(shù)14,并取這一行的單元格數(shù)值,以此類推,就可以實現(xiàn)我們的數(shù)據(jù)篩選。 三、函數(shù)公式講解二 如上圖,利用組合公式=INDEX(M:M,SMALL(IF(M$2:M$100<>"",ROW(M$2:M$100),4^8),ROW(M1)))&""也可以實現(xiàn)查詢篩選功能,其他的和上面講述都是一模一樣的,唯一的區(qū)別就是這個組合函數(shù)=INDEX(M:M,SMALL(IF(M$2:M$100<>"",ROW(M$2:M$100),4^8),ROW(M1)))&""和表1中函數(shù)=IFERROR(INDEX(P$2:P$30,SMALL($L$2:$L$30,ROW(F1))),"")的區(qū)別了,組合函數(shù)輸入后,需要同時按下組合鍵Ctrl+Shift+Enter,其執(zhí)行原理和函數(shù)解讀類似于=IFERROR(INDEX(P$2:P$30,SMALL($L$2:$L$30,ROW(F1))),""),這里我們就不再贅述了。 總結(jié):還是之前說過的,實現(xiàn)查詢篩選功能的函數(shù)很多,思路也很多,希望大家能夠多學習多思考多實踐,我后期還會教給大家一些基本的計算機匯編語言,數(shù)據(jù)庫操作等等,例如利用今天的篩選功能可以對后面我們講解的數(shù)據(jù)庫透視表進行數(shù)據(jù)加工篩選,還可以利用編程語言實現(xiàn)更高級的數(shù)據(jù)處及文件理,未來隨著我們課程的深入,大家學會了基礎匯編語言,像今天我講解的這個查詢篩選功能會很容易實現(xiàn),可能就是簡單的幾行代碼而已,千里之行始于足下!今天就為大家講解到這里,希望能與大家一起學習成長! |
|