Excel 數組公式獲取自動篩選後第一行的行號

在Excel中進行自動篩選後,篩選結果中第一行的行號是不確定的。在某些特定的篩選中(例如某列篩選內容都是相同的),要獲取篩選後這列單元格的內容,就需要先取得篩選後第一行的行號。下面的數組公式可以實現這個目的,假如標題在第4行,數據在A5:D500區域並進行了如圖所示的自動篩選。

在A2中輸入數組公式: =MATCH(1,SUBTOTAL(3,OFFSET(A5,ROW(A5:A500)-ROW(A5),0)),0)+ROW(A4) 公式輸入完畢後按Ctrl+Shift+Enter結束(下同),即可獲得篩選後第一行的行號「28」。 或用下面的數組公式: =MIN(IF(SUBTOTAL(3,INDIRECT(ADDRESS(ROW(A5:A500),1))),ROW(A5:A500))) 說明:SUBTOTAL函數總是忽略篩選結果中隱藏的行,其第一個參數為「3」,相當於COUNTA函數,用該函數與OFFSET函數或INDIRECT函數的組合獲取一個包含「0」和「1」的數組,其中第一個「1」在數組中的位置即篩選結果中第一行的位置,第一個公式用MATCH函數獲取,第二個公式將「1」用行號替換,其最小值即為第一行行號。 要取得A列篩選結果中第一行單元格的內容,可用下面的數組公式: =OFFSET(A1,MATCH(1,SUBTOTAL(3,OFFSET(A5,ROW(A5:A500)-ROW(A5),0)),0)+ROW(A4)-1,)
推薦閱讀:

公式解經
excel 獲取行號:當前行和最後行行號的公式
如 π 與 e 這樣的數學常數應該斜體嗎?
自用公式
通達信A看銀金山谷主圖指標公式

TAG:公式 | 獲取 | Excel | 數組 | 篩選 |