Note: The other languages of the website are Google-translated. Back to English

在Excel中過濾後,如何查找和獲取第一個可見單元格的值?

在某些情況下,您可能需要獲取過濾列表中第一個可見單元格的值。 如何實現呢? 本文將向您展示解決問題的方法。

使用數組公式過濾後查找並獲取第一個可見單元格的值
使用VBA過濾後查找並獲取第一個可見單元格的值


使用數組公式過濾後查找並獲取第一個可見單元格的值

您可以應用以下數組公式來獲取過濾列表中第一個可見單元格的值。 請執行以下操作。

1.選擇一個空白單元格以放置第一個可見值,在其中輸入以下公式,然後按 按Ctrl + 轉移 + Enter 鍵同時。

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))

備註:在公式中,C2:C19是要返回第一個可見單元格值的過濾列表,C2是列表的第一個單元格。 您可以根據需要更改它們。

然後,您可以在所選單元格中填充的過濾列表中看到第一個可見單元格的值,如上圖所示。


使用VBA過濾後查找並獲取第一個可見單元格的值

除了使用上面的數組公式獲取篩選列表中第一個可見單元格的值之外,您還可以運行以下VBA腳本快速返回篩選列表中的第一個可見單元格。 請執行以下操作。

1.選擇一個空白單元格(例如E8)以放置已過濾列表的第一個可見單元格值。

2。 按 其他 + F11 同時打開 Microsoft Visual Basic for Applications 窗口。

3。 在裡面 Microsoft Visual Basic for Applications 窗口中,單擊 插入 > 模塊。 然後將下面的VBA代碼複製並粘貼到“模塊”窗口中。

VBA代碼:在Excel中過濾後查找並獲取第一個可見單元格的值

Sub FirstVisibleCell()
   With Worksheets("Sheet1").AutoFilter.Range
       ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
    End With
End Sub

備註:在代碼中,Sheet1是包含過濾列表的工作表名稱。 “ C”是您要從中獲取第一個可見值的列名。 您可以根據需要更改它們。

3。 按 F5 鍵運行代碼,然後位於C列的已過濾列表的第一個可見單元格將立即填充到單元格E8中。


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部
按評論排序
留言 (17)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
如何在 Excel 中小計過濾後查找並獲取十 (10) 個第一個可見單元格的值?
網站主持人對此評論進行了最小化
法定語文事務署,


Como faço para sabre o número da célula toda vez que realizo o filtro automático no vba via loop?
Por exemplo, ao filtrar o valor 1, retornou as linhas 2, 3 e 4. No próximo loop filtro o valor 2 e retorna as linhas 19, 20, 22。
Como faço para que eu realizar esse filtro eu pegue exatamente o valor da linha atual da linha do filtro e não o valor da primeira linha da planilha?
謝謝。
網站主持人對此評論進行了最小化
VBA 中的優秀模塊,完美地工作我很欣賞這個!非常感謝這篇文章!!!!
網站主持人對此評論進行了最小化
任何人都可以解釋這個公式實際上是如何工作的嗎?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
網站主持人對此評論進行了最小化
我不斷收到運行時錯誤“91”對像變量或未設置塊變量。 我的工作表是 Sheet1,標題為 AllBrands。 這是我的公式:

子 FirstVisibleCell()
使用 Worksheets("ALLBRANDS").AutoFilter.Range
ActiveCell.Value2 = Range("H" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
結束

END SUB

任何幫助將不勝感激!
網站主持人對此評論進行了最小化
嗨,布布,
該代碼在我的情況下運行良好。 您使用的是哪個 Excel 版本?
網站主持人對此評論進行了最小化
不幸的是 - 既不是公式 - 給我一個#VALUE錯誤,也不是VBA對我有用,給我一個運行時錯誤'1004'
太糟糕了,因為我有 Office 2019,我期待這些功能之一在過濾特定單元格時可以工作...... :-(
網站主持人對此評論進行了最小化
‌精彩🌺感謝一百萬🙏
網站主持人對此評論進行了最小化
謝謝一百萬🙏🌺
網站主持人對此評論進行了最小化
有用。 非常感謝...
網站主持人對此評論進行了最小化
此公式有效,但請注意,如果您有空白單元格,則公式可能會出現故障並選擇整個表格中的第一個值,而不僅僅是過濾結果中的值。 我發現的解決方法是用 NULL 或空格替換空白單元格。
網站主持人對此評論進行了最小化
首先我有空白......然後所有單元格都被填充但仍然有#VALUE響應。 希望這個公式也適用於文本......! 無論如何感謝您的建議;-)
網站主持人對此評論進行了最小化
所以對我來說,上面的答案根本不起作用。 我有一個超過 23k 行的工作簿,這是我多年來一直在努力優化的東西。 今天早上我的解決方案又一次激發了我的靈感。
假設您使用 TABLE 來獲取您想要的數據:一行(我將其命名為“Rownmbr”)專用於: =CELL([@[YOURFIRSTROW]])
在表格之外,您在某處制定公式:=INDIRECT(CONCATENATE("A";SUBTOTAL(105;Table1[Rownmbr])))
您只需將“A”替換為要從中獲取數據的任何位置。 對我來說,這很好用,而且使用它並不是一個繁重的公式,它會使文檔進一步陷入困境。
網站主持人對此評論進行了最小化
這個解決方案對我來說非常有效,因為我使用的是一張桌子。 這些說明很難遵循,所以希望這個解釋會更清楚一點。
假設您有一個名為“Table_Name”的 Excel 表。 首先,在表中創建一個新列並將其命名為“RowNumber”。 
在該新列中,輸入公式“=ROW([@RowNumber])” 這將填充新列
在要顯示第一個可見值的單元格中,輸入公式“=INDIRECT("A"&SUBTOTAL(105,Table_Name[RowNumber]))” “A”是包含所需值的列的字母返回。
SUBTOTAL(105,...) 函數返回給定範圍內所有可見行的最小值,在上述情況下,它將返回第一個可見行的行號。
INDIRECT 函數返回給定單元格地址的單元格值。 這就是為什麼您需要公式的第一部分包含要顯示的列的列字母。 公式的第二部分將返回行號。


網站主持人對此評論進行了最小化
你能幫我用arrayformula()在谷歌表格中寫這個公式嗎

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
網站主持人對此評論進行了最小化
在下面的 VBA 代碼中,你能解釋一下是什麼 特殊細胞(xlCellTypeVisible)(1) 意思? 什麼是 (1) 用於之後 特殊細胞(xlCellTypeVisible)?
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
網站主持人對此評論進行了最小化
感謝您!
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護