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

Jak najít a získat hodnotu první viditelné buňky po filtrování v aplikaci Excel?

V některých případech možná budete muset získat hodnotu první viditelné buňky ve filtrovaném seznamu. Jak toho dosáhnout? Tento článek vám ukáže metody, jak to vyřešit.

Najděte a získejte hodnotu první viditelné buňky po filtrování pomocí maticového vzorce
Najděte a získejte hodnotu první viditelné buňky po filtrování pomocí VBA


Najděte a získejte hodnotu první viditelné buňky po filtrování pomocí maticového vzorce

Následující vzorec pole můžete použít k získání hodnoty první viditelné buňky ve filtrovaném seznamu. Postupujte prosím následovně.

1. Vyberte prázdnou buňku pro umístění první viditelné hodnoty, zadejte do ní následující vzorec a stiskněte Ctrl + směna + vstoupit současně.

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

Poznámka: Ve vzorci je C2: C19 filtrovaný seznam, ze kterého chcete vrátit první viditelnou hodnotu buňky, C2 je první buňka seznamu. Můžete je změnit podle potřeby.

Pak můžete vidět hodnotu první viditelné buňky ve filtrovaném seznamu naplněném ve vybrané buňce, jak je uvedeno výše.


Najděte a získejte hodnotu první viditelné buňky po filtrování pomocí VBA

Kromě použití výše uvedeného vzorce pole k získání hodnoty první viditelné buňky ve filtrovaném seznamu můžete spustit níže uvedený skript VBA a rychle vrátit první viditelnou buňku filtrovaného seznamu. Postupujte prosím následovně.

1. Vyberte prázdnou buňku, například E8, pro umístění první viditelné hodnoty buňky filtrovaného seznamu.

2. lis Další + F11 současně otevřete Microsoft Visual Basic pro aplikace okno.

3. V Microsoft Visual Basic pro aplikace okno, klepněte na tlačítko Vložit > Modul. Poté zkopírujte a vložte níže uvedený kód VBA do okna modulu.

Kód VBA: vyhledání a získání hodnoty první viditelné buňky po filtrování v aplikaci Excel

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

Poznámka: V kódu je List1 název listu, který obsahuje filtrovaný seznam. „C“ je název sloupce, ze kterého chcete získat první viditelnou hodnotu. Můžete je změnit podle potřeby.

3. zmáčkni F5 klíč ke spuštění kódu, pak se první viditelná buňka filtrovaného seznamu, která se nachází ve sloupci C, okamžitě vyplní do buňky E8.


Nejlepší kancelářské nástroje produktivity

Kutools pro Excel řeší většinu vašich problémů a zvyšuje vaši produktivitu o 80%

  • Opakované použití: Rychle vložte složité vzorce, grafy a cokoli, co jste dříve používali; Šifrovat buňky s heslem; Vytvořte seznam adresátů a posílat e-maily ...
  • Super Formula Bar (snadno upravit více řádků textu a vzorce); Rozložení pro čtení (snadno číst a upravovat velké množství buněk); Vložit do filtrovaného rozsahu...
  • Sloučit buňky / řádky / sloupce bez ztráty dat; Rozdělit obsah buněk; Zkombinujte duplicitní řádky / sloupce... Zabraňte duplicitním buňkám; Porovnat rozsahy...
  • Vyberte možnost Duplikovat nebo Jedinečný Řádky; Vyberte prázdné řádky (všechny buňky jsou prázdné); Super hledání a fuzzy hledání v mnoha sešitech; Náhodný výběr ...
  • Přesná kopie Více buněk beze změny odkazu na vzorec; Automaticky vytvářet reference do více listů; Vložte odrážky, Zaškrtávací políčka a další ...
  • Extrahujte text, Přidat text, Odebrat podle pozice, Odebrat mezeru; Vytváření a tisk mezisoučtů stránkování; Převod mezi obsahem buněk a komentáři...
  • Super filtr (uložit a použít schémata filtrů na jiné listy); Rozšířené řazení podle měsíce / týdne / dne, frekvence a dalších; Speciální filtr tučnou kurzívou ...
  • Kombinujte sešity a pracovní listy; Sloučit tabulky na základě klíčových sloupců; Rozdělte data do více listů; Dávkový převod xls, xlsx a PDF...
  • Více než 300 výkonných funkcí. Podporuje Office / Excel 2007-2021 a 365. Podporuje všechny jazyky. Snadné nasazení ve vašem podniku nebo organizaci. Plné funkce 30denní bezplatná zkušební verze. 60denní záruka vrácení peněz.
karta kte 201905

Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci

  • Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
  • Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
  • Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!
officetab dno
Komentáře (17)
Zatím žádné hodnocení. Buďte první, kdo ohodnotí!
Tento komentář byl moderátorem webu minimalizován
Jak najít a získat hodnotu deseti (10) prvních viditelných buněk po filtrování mezisoučtů v Excelu?
Tento komentář byl moderátorem webu minimalizován
Ola,


Como faço para saber o número da célula toda vez que realizo o filtro automático no vba via loop?
Příkladem je filtrar o valor 1, retornou as linhas 2, 3 e 4. No proximo 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?
Děkuju.
Tento komentář byl moderátorem webu minimalizován
Vynikající modul ve VBA, pracoval perfctly To oceňuji! Díky moc za tento příspěvek!!!!
Tento komentář byl moderátorem webu minimalizován
Může někdo vysvětlit, jak tento vzorec vlastně funguje?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
Tento komentář byl moderátorem webu minimalizován
Stále se mi zobrazuje chyba běhu '91' Object variable nebo With block variable not set. Můj pracovní list je List1 s názvem AllBrands. Toto je můj vzorec:

Sub FirstVisibleCell()
S Worksheets("ALLBRANDS").AutoFilter.Range
ActiveCell.Value2 = Range("H" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Konec s

End Sub

Jakákoliv pomoc bude oceněna!
Tento komentář byl moderátorem webu minimalizován
ahoj bube,
Kód v mém případě funguje dobře. Jakou verzi Excelu používáte?
Tento komentář byl moderátorem webu minimalizován
Bohužel - ani vzorec - mi nedává chybu #VALUE, ani VBA mi nefunguje a dává mi běhovou chybu '1004'
Škoda, protože mám Office 2019 a čekal jsem, že jedna z těchto funkcí bude fungovat při filtrování konkrétních buněk... :-(
Tento komentář byl moderátorem webu minimalizován
‌úžasné🌺 Díky za milion🙏
Tento komentář byl moderátorem webu minimalizován
Díky za milion🙏🌺
Tento komentář byl moderátorem webu minimalizován
Funguje to. Díky moc...
Tento komentář byl moderátorem webu minimalizován
Tento vzorec funguje, ale uvědomte si, že pokud máte prázdné buňky, vzorec může selhat a vybrat první hodnotu v celé tabulce, nejen ve filtrovaných výsledcích. Řešením, které jsem našel, bylo nahradit prázdné buňky NULL nebo mezerou.
Tento komentář byl moderátorem webu minimalizován
Nejprve jsem měl prázdná místa... poté byly všechny buňky vyplněny, ale stále s odpovědí #HODNOTA. Snad tento vzorec funguje i na textu...! Každopádně díky za rady ;-)
Tento komentář byl moderátorem webu minimalizován
Takže pro mě výše uvedená odpověď jednoduše nefunguje tak dobře. Mám sešit s více než 23 XNUMX řádky a na jeho optimalizaci jsem léta pracoval. Moje řešení mi přišlo dnes ráno v další jiskře inspirace.
Za předpokladu, že k získání požadovaných dat používáte TABLE: Jeden řádek (nazval jsem ho „Rownmbr“) je věnován: =CELL([@[YOURFIRSTROW]])
Mimo tabulku někde vytvoříte vzorec:=NEPŘÍMÝ(CONCATENATE("A"; SUBTOTAL(105;Table1[Rownmbr])))
Jednoduše nahradíte „A“ kdekoli, odkud chcete data získat. Pro mě to funguje skvěle a není to složitý vzorec, který by dokument dále zahltil.
Tento komentář byl moderátorem webu minimalizován
Toto řešení pro mě fungovalo perfektně, protože jsem používal stůl. Pokyny bylo těžké dodržet, tak snad bude toto vysvětlení o něco srozumitelnější.
Řekněme, že máte excelovou tabulku s názvem „Table_Name“. Nejprve vytvořte nový sloupec v tabulce a pojmenujte jej „RowNumber“. 
Do tohoto nového sloupce zadejte vzorec „=ROW([@RowNumber])“ Tím se nový sloupec vyplní
Do buňky, kde chcete zobrazit první viditelnou hodnotu, zadejte vzorec "=NEPŘÍMÉ("A"&SUBTOTAL(105,Název_tabulky[Číslo_řádku]))" "A" je písmeno sloupce, který obsahuje požadovanou hodnotu. vrátit.
Funkce SUBTOTAL(105,...) vrací minimální hodnotu všech viditelných řádků v daném rozsahu, což ve výše uvedeném případě vrátí číslo řádku prvního viditelného řádku.
Funkce NEPŘÍMÉ vrací hodnotu buňky pro danou adresu buňky. To je důvod, proč potřebujete, aby první část vzorce obsahovala písmeno sloupce, který chcete zobrazit. Druhá část vzorce vrátí číslo řádku.


Tento komentář byl moderátorem webu minimalizován
Můžete mi pomoci napsat tento vzorec do listu Google pomocí arrayformula ()

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
Tento komentář byl moderátorem webu minimalizován
V následujícím kódu VBA můžete vysvětlit, co dělá SpecialCells(xlCellTypeVisible)(1) znamenat? co je (1) používá se po SpecialCells(xlCellTypeVisible)?
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Tento komentář byl moderátorem webu minimalizován
Děkuji!
Zatím zde nejsou žádné komentáře
Zanechat své připomínky
Odesílání jako host
×
Ohodnoťte tento příspěvek:
0   Postavy
Doporučená umístění

Sociální sítě

Copyright © 2009 - www.extendoffice.com. | Všechna práva vyhrazena. Poháněno ExtendOffice. | |. | Sitemap
Microsoft a logo Office jsou ochranné známky nebo registrované ochranné známky společnosti Microsoft Corporation ve Spojených státech a / nebo jiných zemích.
Chráněno Sectigo SSL