站長資訊網
        最全最豐富的資訊網站

        excel多條件篩選函數 用Excel函數實現排序與篩選的方法

        excel多條件篩選函數 用Excel函數實現排序與篩選的方法,多掌握一門知識就等于多能解決一些問題,今天要介紹的是excel多條件篩選函數的相關知識,我相信當你看完excel多條件篩選函數 用Excel函數實現排序與篩選的方法這篇文章的時候你一定會掌握一門新技能,從而讓你的工作更簡單!

        Execl本身具有很方便的排序與篩選功能,下拉“數據”菜單即可選擇排序或篩選對數據清單進行排序或篩選。但也有不足,首先無論排序或篩選都改變了原清單的原貌,特別是清單的數據從其它工作表鏈接來而源數據發生變化時,或清單錄入新記錄時必須從新進行排序或篩選。其次還有局限,例如排序只能最多對三個關鍵字(三列數據)排序,篩選對同一列數據可用“與”、或“或”條件篩選,但對不同列數據只能用“與”條件篩選。例如對某張職工花名冊工作簿,要求篩選出年齡大于25歲且小于50歲或年齡大于50歲或小于25歲都是可行的,如同時要求性別是男的或女的也是可行的。但要求篩選出女的年齡在22歲到45歲,男的年齡在25歲到50歲時Execl本身具有的篩選功能則無能為力了。再者排序與篩選不能結合使用,即不能在排序時根據條件篩選出來的記錄進行排序。例如有一張職工資料清單,其中有的職工已經退休,對在職職工的年齡進行排序時無法剔除已退休職工的數據。

        本文試圖用Execl的函數來解決上述問題。

        一、用函數實現排序

        題目

        如有一張工資表,A2:F501,共6列500行3000個單元格。表頭A1為姓名代碼(1至500)、B1為姓名、C1為津貼、D1為獎金、E1為工資、F1收入合計。現要求對職工收入從多到少排序,且在職工總收入相同時再按工資從多到少排序,在職工總收入和工資相同時再按獎金從多到少排序,在職工職工總收入和工資、獎金相同時再按津貼從多到少排序。

        方法

        G1單元格填入公式

        “=if(F2=0,10^100,INT(CONCATENATE(999-f2,999-e2,999-d2,999-c2)))”,

        CONCATENATE是一個拼合函數,可以把30個以下的單元的數據拼合成一個數據,這些被拼合的數據之間用逗號分開。用f2、e2等被拼合的數據用999來減,是為了使它們位數相同。(假定任何一個職工的總收入少于899元)。被拼合成的函數是文本函數,CONCATENATE與INT函數套用是為了使文本轉換為數字。最外層的if函數是排序時用來剔除不進行排序的記錄,在本例中指收入為零的記錄。(在上文提到的職工年齡排序,則公式改為“if(f2="退休",10^100,…..)”,即剔除了退休職工。)

        第二步把G1單元格的公式拖放到G500單元格(最簡便的方法是點擊G1單元格后向G1單元格右下方移動鼠標,見到黑十時雙擊鼠標就完成了G1到G500的填充)。

        第三步在在H2單元填入公式“=MATCH(SMALL(G:G,ROW(A1)),G:G,0)”與第二步一樣拖放到H501單元格。此公式實際上是把三列公式合成一列公式,ROW(A1)即為A1的行數是1,隨著向下拖放依次為2、3、4…,SMALL(G:G,ROW(A1))為G列中最小的數隨著向下拖放依次為第2、第3、..小的數,MATCH(SMALL(G:G,ROW(A1)),G:G,0)即為G列各行的數據中最小、第2、第3小等的數據在第幾行。

        第四步把A1至F1單元格的表頭復制到I1至N1單元格,在I2單元格輸入公式“=INDEX($A$2:$F$501,$H2,COLUMN(A$1))”INDEX函數是一個引用函數,即把$A$2:$F$501單元格列陣第$H2行第COLUMN(A$1)列的數據放入I2單元格。然后把I2單元格的公式拖放到N2單元格,點擊N2單元格后向N2單元格右下方移動鼠標見到黑十時雙擊鼠標就完成了I2到N501單元格的填充到此全部完成。

        以上敘述看似繁雜實際非常簡單,只要把A1至F1的表頭復制到I1至N1單元格,再分別在G1、H2、I2單元格輸入公式然后向下拖放,即使對EXCEL應用不熟練的同志一分鍾內便能完成。

        對上述程序稍作變化還可得到更多用度。上面例子數據是從大到小排列的,如H列的函數中的SMALL改為LARGE,上面例子數據就從小到大排列了。如H2單元格的公式改為“=IF(O1=1,MATCH(SMALL(G:G,ROW(A1)),G:G,0),MATCH(LARGE(G:G,ROW(A1)),G:G,0))”

        并把H2單元格的公式向下拖放。這樣在O1單元格輸入1上面例子數據是從大到小排列的,O1單元格輸入1以外的數上面例子數據就從小到大排列了。

        如在H列前插入若干列,如插入一列,則現在的H列輸入類似G列的公式,例如

        “=if(F2=0,10^100,d2)”,現在的I列的公式改為“=IF(P1=1,MATCH(SMALL(G:G,ROW(A1)),G:G,0),

        MATCH(SMALL(H:H,ROW(A1)),H:H,0)))”

        即在P單元格輸入1以外的值就實現了按獎金大小排序.這樣只要通過改變P1(原來的O1單元格)單元格內容的改變就能立即得到按不同要求的排序。

        二、用函數實現篩選

        題目

        如有一張職工名冊表,A2:F501,共6列500行3000個單元格。表頭A1為姓名代碼(1至500)、B1為姓名、C1為性別、D1為年齡、E1為學歷、F1職稱?,F要求對職工的性別、年齡、學歷、職稱進行交錯篩選,例如要求在同一張表上篩選出1、女的年齡在22歲到45歲,男的年齡在25歲到50歲,2、女博士,3、男博士后。

        方法

        第一步在G2單元格輸入公式”=IF(OR(AND(C2="女",D2>=22,D2<=45),AND(C2="男",

        D2>=25,D2<=50)),ROW(A1),0)“,在H2單元格輸入公式”=IF(AND(C2="女",E2="博士"),

        ROW(B1),0)“,在I2單元格輸入公式”=IF(AND(C2="男",E2="博士后"),ROW(B1),0)“。在J2單元格輸入公式“=IF(K$2=1,LARGE(G:G,ROW(A1)),IF(K$2=2,LARGE(H:H,ROW(A1)),

        IF(K$2=3,LARGE(I:I,ROW(A1)),0)))”然后用上述提到的方法向下拖放。G、H、I列的公式的含義就是凡符合篩選條件的行記錄下行號否則為零,J列的公式的含義根據K2的數值選擇G、H、I中的一列進行排序并把不合條件的行除去。

        第二步在K1單元格輸文字”篩選選擇”,A1到F1表頭復制到L1到Q1,在L2單元格輸入

        公式“=IF($J2=0,0,INDEX($A$2:$F$501,$J2,COLUMN(A$1)))”,然后向右拖放到Q2,再向下拖放。INDEX函數的含義上文已說明。

        第三步在P1單元格輸入1或2或3便可實現上述三種篩選。

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 精品视频在线免费观看| 午夜精品久视频在线观看| 成人国产精品999视频| 麻豆精品| 成人午夜精品久久久久久久小说| 免费精品无码AV片在线观看| 四虎精品成人免费视频| 国产日韩精品无码区免费专区国产 | 成人区人妻精品一区二区不卡网站| 久久亚洲国产精品123区| 中文字幕亚洲精品资源网| 国产精品内射后入合集| 日韩精品中文字幕无码一区| 久久久久久国产精品免费免费| 国产精品白丝AV嫩草影院| 久久91综合国产91久久精品| 国产精品毛片一区二区三区| 久久精品中文闷骚内射| 亚洲AV永久无码精品一百度影院| 亚洲精品老司机在线观看| 人妻VA精品VA欧美VA| 久久久久久亚洲精品无码| 国产小呦泬泬99精品| 国产精品你懂的在线播放| 91精品免费久久久久久久久| 亚洲精品在线观看视频| 国产精品久久久久久福利69堂| 97久久久久人妻精品专区| 国产福利精品一区二区| 国产精品网站在线观看免费传媒 | 国产精品永久免费视频| 国产精品免费久久久久电影网| 国产精品99无码一区二区| 亚洲视频精品在线| 91精品在线国产| 国产成人高清精品免费观看| 国产精品自在在线午夜福利| 精品欧美一区二区在线观看| 老子影院午夜精品无码| 婷婷久久精品国产| 亚洲AV无码久久精品成人|