Excel——使用INDEX和SMALL實現條件篩選


如下圖所示,如何實現Excel自帶的篩選功能呢?(對的,就是軟件自帶的功能)

image

如何實現:

B13的公式:=IFERROR(INDEX(B:B,SMALL(IF(A$1:A$10=B$12,ROW($1:$10)),ROW(A1))),"")

C13的公式:=IFERROR(INDEX(C:C,SMALL(IF(A$1:A$10=B$12,ROW($1:$10)),ROW(A1))),"")


一、對B12設置數據有效性:

先設置數據源F12:F15,包含所有類別的問題

image設置有效性條件為序列,來源為F12:F15
image


二、設計虛擬數值

C2位置:=ROUND(RAND()*100,0)

RAND()返回0~1的隨機數;

ROUND,對數值進行四舍五入。


三、篩選對應的行數

=IF(A$1:A$10=B$12,ROW($1:$10))

如果故障類型一列中有與篩選項目相同的內容,返回其行數。如下圖所示:

注意:先選中F1:F10,輸入公式后,按住Ctrl+Shift,敲擊Enter。不能先按住Ctrl+Shift,敲擊Enter,再向下填充。

image


四、將行數列以升序返回有效數值

=SMALL(IF(A$1:A$10=B$12,ROW($1:$10)),ROW(A1))

以升序返回數據列的有效數字。如下圖所示:

image

注意:先在F1中輸入函數后,按住Ctrl+Shift,敲擊Enter后,向下填充。與上面的輸入方法不同。


五、返回對應行數的機型

=INDEX(B:B,SMALL(IF(A$1:A$10=B$12,ROW($1:$10)),ROW(A1)))

返回B列中對應行數的單元格內容。

注意:與上面一樣,先在F1中輸入函數后,按住Ctrl+Shift,敲擊Enter后,向下填充。

image


六、使用IFERROR解決錯誤值的顯示問題。

=IFERROR(INDEX(B:B,SMALL(IF(A$1:A$10=B$12,ROW($1:$10)),ROW(A1))),"")

注意:與上面一樣,先在F1中輸入函數后,按住Ctrl+Shift,敲擊Enter后,向下填充。image


七、數目一列,原理與故障類別一致,將B列改為C列即可。

=IFERROR(INDEX(C:C,SMALL(IF(A$1:A$10=B$12,ROW($1:$10)),ROW(A1))),"")

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM