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

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        本文分享Excel用公式篩選完成一對多查找,是比較經典的excel篩選函數公式自動查找公式數據。

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        手機如何做表格:點擊查看

        用你的EXCEL、PPT、WORD等技能在業余時間來兼職賺錢::點擊入駐

        總是聽到高手們說有個萬金油公式,可到底什么是萬金油公式,這個Excel公式又能干什么呢?不妨先看看下面這個效果圖:

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        這個例子就是一個典型的一對多查找,查找條件是部門,在數據源內每個部門對應的都是多個數據,萬金油公式最主要的用途就是用來解決一對多查找等一些相對復雜的問題。上面動畫中的公式為:

        =IFERROR(INDEX($A$2:$D$21,SMALL(IF($C$2:$C$21=$F$2,ROW($1:$20),99),ROW(A1)),MATCH(F$3,$A$1:$D$1,0)),"")

        看到這個公式,或許很多朋友都會驚嘆:這么長的公式,看不懂哇!

        今天就和大家一同破解這個看不懂但又很強悍的公式套路,耐心往下看哦……

        上面這個公式一共用了六個函數:IFERROR、INDEX、SMALL、IF、ROW和MATCH,其中的IFERROR和MATCH是本例中輔助性的兩個函數,其余的四個INDEX-SMALL-IF-ROW就是萬金油公式啦。

        因此我們先來學習這個核心部分的原理:

        F4單元格的公式為:

        =INDEX($A$2:$A$21,SMALL(IF($C$2:$C$21=$F$2,ROW($1:$20),99),ROW(A1)))

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        先從INDEX說起,這個函數基本功能是給出一個區域,然后根據對應的行列位置返回查找結果,上圖中INDEX查找的數據區域就是姓名所在的區域$A$2:$A$21。

        INDEX函數的基本結構是:INDEX(查找區域,第幾行,第幾列),如果區域是單行或者單列的話,后面兩個參數可以省略一個。通俗點說,你拿著電影票去找座位,整個大廳的座位就是區域,第幾排第幾座就是公式中的后面兩個參數,通過這種方式可以準確找到目標位置。

        在上面這個例子里,區域是在一列,所以我們只需要確定每個數據在第幾行就行。

        明白這一點的話,我們的重點就該放到INDEX的第二個參數了:

        SMALL(IF($C$2:$C$21=$F$2,ROW($1:$20),99),ROW(A1))

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        注意看上面這個圖,銷售部一共有四條記錄,分別在數據區域的第5、8、9和16行(數據區域是從第二行開始)。

        因此我們希望公式下拉的時候,INDEX的第二個參數分別是5、8、9和16這四個數字(這一點一定要想明白)。

        注意,接下來我們即將接觸到萬金油最核心的部分,請保持高度集中的注意力……

        SMALL函數的基本結構:SMALL(一組數,第幾小的數)

        建議自己模擬個簡單的數據來充分理解這個函數,方法如下:

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        在A列輸入一些數字,公式的意思是這列數字中最小的一個,結果是2,很好理解對不對,將公式的第二個參數改成2,再看看結果:

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        倒數第二小的是4。

        如果希望繼續得到第三小的數,該怎么做我想大家都能想到,但是會有個問題,我們只能手動修改第二參數,并不能通過下拉來實現這個參數的變化,如果要想可以下拉的話,第二參數就需要用到ROW函數,也就是這樣修改:

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        ROW函數非常簡單,得到的就是參數的行號,通過這個公式,我們就把A列的數據從小到大排了個序,覺得有意思嗎?

        回到我們的萬金油公式,5、8、9和16這四個數字代表什么意思還記得吧,我們需要用SMALL函數依次得到這四個數字,思路是通過判斷C列是否與F2一致,如果一樣得到行號,如果不一樣,就得到一個比最大行號還大的數字(目的是為了防止被查找到):

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        要實現這個目的,就需要IF函數的介入,于是就有了:

        IF($C$2:$C$21=$F$2,ROW($1:$20),99),用這一段來作為SMALL的第一個參數。

        關于這段IF,就比較容易理解了,我們可以借助F9來看看這段公式的結果:

        深入解析Excel萬金油篩選公式“INDEX-SMALL-IF-ROW”

        因為我們的數據就20個,所以IF的第三個參數使用99就足夠了,如果數據量比較大的話,可以用9^9,表示9的9次方,反正足夠大就行。

        搞清楚這個IF的話,再來看這段SMALL(IF($C$2:$C$21=$F$2,ROW($1:$20),99),ROW(A1))是不是就沒那么暈了。

        關于SMALL這部分,一定要明白是隨著公式下拉的時候,逐個得到我們希望得到的那幾個數字,然后用這些數字作為INDEX的第二參數,就可以得到最終需要的結果。

        萬金油的核心就是INDEX、SMALL、IF和ROW,請大家務必反復琢磨,把這部分原理搞清楚。還有非常重要的一點需要強調,萬金油公式是一個數組公式,因此需要我們按著Ctrl和shift再回車。

        至于一開始的公式,考慮到要查找多列的內容,所以INDEX的數據區域用的$A$2:$D$21,多列的時候,就需要提供列位置才能找到目標值,因此用MATCH(F$3,$A$1:$D$1,0)來確定數據在第幾列。

        每個部門的數據都不一樣多,我們需要將公式多向下拉幾行,這時候就會產生一些錯誤值,在公式的最外層使用IFERROR函數屏蔽了錯誤值,使得查詢結果看起來非常干凈。

        今天只是使用了一對多查找這樣一個例子來解釋萬金油公式的原理,實際上萬金油的套路還有很多,大家喜歡的話以后繼續分享相關的實例,當然,如果看完本文的話能夠自己去解讀一些復雜的公式就更好了。

        相關學習推薦:excel教程

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 精品无码AV无码免费专区| 国产精品一国产精品| 日韩精品无码中文字幕一区二区| 亚洲国产精品自在在线观看| 亚洲精品线路一在线观看| 无码aⅴ精品一区二区三区浪潮| 99久久国产综合精品五月天喷水| 国内精品久久人妻互换| 亚洲精品成人区在线观看| 国产精品高清免费网站| 国产精品丝袜一区二区三区| 中文国产成人精品久久亚洲精品AⅤ无码精品| 成人国产精品秘 果冻传媒在线| 国产精品ⅴ无码大片在线看| 无码精品国产VA在线观看 | 99久久精品午夜一区二区| 亚洲精品卡2卡3卡4卡5卡区| 无码人妻精品中文字幕免费| 国内精品99亚洲免费高清| 亚洲精品国产日韩无码AV永久免费网| 99亚洲精品视频| 秋霞午夜鲁丝片午夜精品久| 99精品高清视频一区二区| 久久精品a亚洲国产v高清不卡| 亚洲国产精品久久久天堂| 天天视频国产精品| 久久久精品国产Sm最大网站| 九色精品视频在线观看| 国产内地精品毛片视频| 国内精品九九久久久精品| 亚洲中文久久精品无码| 亚洲国产精品久久| 国产精品v欧美精品v日韩精品| 国产成人久久精品一区二区三区 | 精品无码综合一区| 精品乱码久久久久久夜夜嗨| 国产亚洲精品免费视频播放| 国语自产精品视频| 欧美日韩在线精品一区二区三区激情综合 | 国产精品人人做人人爽人人添| 97精品国产高清自在线看超 |