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

Cum se găsește și se obține valoarea primei celule vizibile după filtrare în Excel?

În unele cazuri, poate fi necesar să obțineți valoarea primei celule vizibile dintr-o listă filtrată. Cum se realizează? Acest articol vă va arăta metodele de rezolvare.

Găsiți și obțineți valoarea primei celule vizibile după filtrare cu formula matrice
Găsiți și obțineți valoarea primei celule vizibile după filtrarea cu VBA


Găsiți și obțineți valoarea primei celule vizibile după filtrare cu formula matrice

Puteți aplica următoarea formulă matrice pentru a obține valoarea primei celule vizibile dintr-o listă filtrată. Vă rugăm să faceți următoarele.

1. Selectați o celulă goală pentru plasarea primei valori vizibile, introduceți formula de mai jos în ea, apoi apăsați pe Ctrl + Schimba + Intrați tastele simultan.

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

notițe: În formulă, C2: C19 este lista filtrată pe care doriți să o returnați prima valoare a celulei vizibile, C2 este prima celulă a listei. Le puteți schimba după cum aveți nevoie.

Apoi, puteți vedea valoarea primei celule vizibile din lista filtrată populată în celula selectată, așa cum se arată mai sus.


Găsiți și obțineți valoarea primei celule vizibile după filtrarea cu VBA

Pe lângă utilizarea formulei matricei de mai sus pentru a obține valoarea primei celule vizibile dintr-o listă filtrată, puteți rula scriptul VBA de mai jos pentru a returna rapid prima celulă vizibilă a unei liste filtrate. Vă rugăm să faceți următoarele.

1. Selectați o celulă goală, cum ar fi E8, pentru plasarea primei valori vizibile a celulei dintr-o listă filtrată.

2. presa Alt + F11 tastele simultan pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.

3. În Microsoft Visual Basic pentru aplicații fereastră, faceți clic pe Insera > Module. Apoi copiați și lipiți codul VBA de mai jos în fereastra Module.

Cod VBA: găsiți și obțineți valoarea primei celule vizibile după filtrare în Excel

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

notițe: În cod, Sheet1 este numele foii care conține lista filtrată. „C” este numele coloanei din care doriți să obțineți prima valoare vizibilă. Le puteți schimba după cum aveți nevoie.

3. apasă pe F5 tasta pentru a rula codul, apoi prima celulă vizibilă a listei filtrate care se află în coloana C va fi populată imediat în celula E8.


Cele mai bune instrumente de productivitate Office

Kutools pentru Excel vă rezolvă majoritatea problemelor și vă crește productivitatea cu 80%

  • reutilizarea: Introduceți rapid formule complexe, diagrame și orice ai folosit anterior; Criptați celulele cu parola; Creați o listă de corespondență și trimiteți e-mailuri ...
  • Super Formula Bar (editați cu ușurință mai multe linii de text și formulă); Layout de citire (citiți și editați cu ușurință un număr mare de celule); Lipiți la interval filtrat...
  • Merge celule / rânduri / coloane fără a pierde date; Conținut de celule divizate; Combinați rânduri / coloane duplicate... Prevenirea celulelor duplicate; Comparați gamele...
  • Selectați Duplicat sau Unic Rânduri; Selectați Rânduri goale (toate celulele sunt goale); Super Find și Fuzzy Find în multe cărți de lucru; Selectare aleatorie ...
  • Copie exactă Mai multe celule fără modificarea referinței formulelor; Creați automat referințe la foi multiple; Introduceți gloanțe, Casete de selectare și multe altele ...
  • Extrageți textul, Adăugați text, eliminați după poziție, Eliminați spațiul; Creați și imprimați subtotaluri de paginare; Convertiți conținutul dintre celule și comentarii...
  • Super Filtru (salvați și aplicați scheme de filtrare altor foi); Sortare avansată după lună / săptămână / zi, frecvență și multe altele; Filtru special cu bold, italic ...
  • Combinați cărți de lucru și foi de lucru; Merge Tables pe baza coloanelor cheie; Împărțiți datele în mai multe foi; Conversia în loturi xls, xlsx și PDF...
  • Peste 300 de funcții puternice. Suportă Office / Excel 2007-2021 și 365. Acceptă toate limbile. Implementare ușoară în întreprinderea sau organizația dvs. Funcții complete Probă gratuită de 30 de zile. Garanție de returnare a banilor de 60 de zile.
fila kte 201905

Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară

  • Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
  • Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ​​ferestrele noi.
  • Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!
fundul officetab
Comentarii (17)
Încă nu există evaluări. Fii primul care evaluează!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Cum să găsiți și să obțineți valoarea a zece (10) primele celule vizibile după filtrarea subtotalului în Excel?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Ola,


Cum se face pentru saber o număr de célula toată o dată pe care îl realizează o filtru automat nu vba prin loop?
De exemplu, ao filtrar o valor 1, returnou as linhas 2, 3 e 4. No next loop filtru o valor 2 e returna as linhas 19, 20, 22.
Como faço para que eu realiza esse filtro eu pegue exatamente o valor da linha atual da linha do filtro e não o valor da first linha da planilha?
Mulţumesc.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Modul excelent în VBA, a funcționat perfect. Apreciez acest lucru! Mulțumesc mult pentru această postare!!!!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Poate cineva să explice cum funcționează de fapt această formulă?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
Acest comentariu a fost redus la minimum de moderatorul de pe site
Continuu să primesc o eroare de rulare „91” Variabila obiect sau Cu variabila bloc nesetata. Foaia mea de lucru este Sheet1 intitulată AllBrands. Aceasta este formula mea:

Sub FirstVisibleCell()
Cu foi de lucru ("ALLBRANDS").AutoFilter.Range
ActiveCell.Value2 = Range(„H” & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Se termina cu

End Sub

Orice ajutor va fi apreciat!
Acest comentariu a fost redus la minimum de moderatorul de pe site
Bună Bub,
Codul funcționează bine în cazul meu. Ce versiune de Excel folosești?
Acest comentariu a fost redus la minimum de moderatorul de pe site
Din păcate - nici formula - care îmi dă o eroare #VALOR și nici VBA nu funcționează pentru mine, dându-mi o eroare de rulare „1004”
Păcat că am Office 2019 și mă așteptam ca una dintre aceste caracteristici să funcționeze atunci când filtrez anumite celule... :-(
Acest comentariu a fost redus la minimum de moderatorul de pe site
‌minunat🌺 Multumesc un milion🙏
Acest comentariu a fost redus la minimum de moderatorul de pe site
Multumesc un milion🙏🌺
Acest comentariu a fost redus la minimum de moderatorul de pe site
Functioneaza. Multumesc mult...
Acest comentariu a fost redus la minimum de moderatorul de pe site
Această formulă funcționează, dar rețineți că, dacă aveți celule goale, formula poate funcționa defectuos și poate selecta prima valoare din întregul tabel, nu doar din rezultatele filtrate. Soluția pe care am găsit-o a fost înlocuirea celulelor goale cu NULL sau un spațiu.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mai întâi am avut spații libere... apoi toate celulele au fost completate, dar încă aveam răspunsul #VALOR. Sperăm că această formulă funcționează și pe text...! Multumesc oricum pentru sfat ;-)
Acest comentariu a fost redus la minimum de moderatorul de pe site
Deci, pentru mine, răspunsul de mai sus pur și simplu nu funcționează atât de bine. Am un registru de lucru cu peste 23 de rânduri și este ceva pe care m-am străduit să-l optimizez de-a lungul anilor. Soluția mea a venit în această dimineață într-o altă scânteie de inspirație.
Presupunând că utilizați un TABLE pentru a obține datele pe care le doriți, faceți acest lucru: Un rând (l-am numit „Rownmbr”) este dedicat: =CELL([@[YOURFIRSTROW]])
În afara tabelului faci o formulă undeva:=INDIRECT(CONCATENATE("A";SUBTOTAL(105;Tabel1[Rownmbr])))
Pur și simplu înlocuiți „A” cu oriunde doriți să obțineți datele. Pentru mine, acest lucru funcționează grozav și nu este o formulă grea de utilizat, care va bloca documentul și mai mult.
Acest comentariu a fost redus la minimum de moderatorul de pe site
Această soluție a funcționat perfect pentru mine, deoarece foloseam o masă. Instrucțiunile au fost greu de urmat, așa că sperăm că această explicație va fi puțin mai clară.
Să presupunem că aveți un tabel Excel numit „Table_Name”. Mai întâi, creați o nouă coloană în tabel și denumiți-o „RowNumber”. 
În acea coloană nouă, introduceți formula „=ROW([@RowNumber])” Aceasta va completa apoi noua coloană cu
În celula în care doriți să afișați prima valoare vizibilă, introduceți formula „=INDIRECT(„A”&SUBTOTAL(105,Table_Name[RowNumber]))” „A” este litera coloanei care conține valoarea dorită. a se intoarce.
Funcția SUBTOTAL(105,...) returnează valoarea minimă a tuturor rândurilor vizibile dintr-un interval dat, care în cazul de mai sus va returna numărul rândului primului rând vizibil.
Funcția INDIRECT returnează valoarea celulei pentru o anumită adresă de celule. Acesta este motivul pentru care trebuie ca prima parte a formulei să conțină litera coloanei pe care doriți să o afișați. A doua parte a formulei va returna numărul rândului.


Acest comentariu a fost redus la minimum de moderatorul de pe site
Mă puteți ajuta să scriu această formulă în foaia Google cu arrayformula ()

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
Acest comentariu a fost redus la minimum de moderatorul de pe site
În următorul cod VBA, puteți explica ce face SpecialCells(xlCellTypeVisible)(1) Rău? Ce este (1) folosit pentru dupa SpecialCells(xlCellTypeVisible)?
ActiveCell.Value2 = Range(„C” & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Acest comentariu a fost redus la minimum de moderatorul de pe site
Mulțumesc!
Nu există comentarii postate aici încă

Urmărește-ne

Copyright © 2009 - www.extendoffice.com. | Toate drepturile rezervate. Cu sprijinul ExtendOffice. | Harta site-ului
Microsoft și sigla Office sunt mărci comerciale sau mărci comerciale înregistrate ale Microsoft Corporation în Statele Unite și / sau în alte țări.
Protejat de Sectigo SSL