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

Hur hittar jag och får värdet av den första synliga cellen efter filtrering i Excel?

I vissa fall kan du behöva få värdet av den första synliga cellen i en filtrerad lista. Hur uppnår man det? Den här artikeln visar metoder för att lösa det.

Hitta och få värdet av den första synliga cellen efter filtrering med matrisformel
Hitta och få värdet av den första synliga cellen efter filtrering med VBA


Hitta och få värdet av den första synliga cellen efter filtrering med matrisformel

Du kan använda följande matrisformel för att få värdet för den första synliga cellen i en filtrerad lista. Gör så här.

1. Välj en tom cell för att placera det första synliga värdet, ange nedanstående formel i det och tryck sedan på ctrl + shift + ange tangenter samtidigt.

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

Anmärkningar: I formeln är C2: C19 den filtrerade listan som du vill returnera det första synliga cellvärdet, C2 är den första cellen i listan. Du kan ändra dem efter behov.

Då kan du se värdet på den första synliga cellen i den filtrerade listan som är befolkad i den valda cellen som visas ovan.


Hitta och få värdet av den första synliga cellen efter filtrering med VBA

Förutom att använda ovanstående matrisformel för att få värdet av den första synliga cellen i en filtrerad lista kan du köra nedanstående VBA-skript för att snabbt returnera den första synliga cellen i en filtrerad lista. Gör så här.

1. Välj en tom cell som E8 för att placera det första synliga cellvärdet i en filtrerad lista.

2. Tryck andra + F11 samtidigt för att öppna Microsoft Visual Basic för applikationer fönster.

3. I Microsoft Visual Basic för applikationer fönstret klickar Insert > Modulerna. Kopiera och klistra in nedanstående VBA-kod i modulfönstret.

VBA-kod: hitta och få värdet av den första synliga cellen efter filtrering i Excel

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

Anmärkningar: I koden är Sheet1 arknamnet som innehåller den filtrerade listan. “C” är det kolumnnamn som du vill få det första synliga värdet från. Du kan ändra dem efter behov.

3. tryck på F5 för att köra koden, kommer den första synliga cellen i den filtrerade listan som lokaliseras i kolumn C att fyllas i i cell E8 omedelbart.


De bästa Office-produktivitetsverktygen

Kutools för Excel löser de flesta av dina problem och ökar din produktivitet med 80%

  • återanvändning: Sätt snabbt i komplexa formler, diagram och allt som du har använt tidigare; Kryptera celler med lösenord; Skapa e-postlista och skicka e-post ...
  • Super Formula Bar (enkelt redigera flera rader med text och formel); Läslayout (enkelt läsa och redigera ett stort antal celler); Klistra in i filtrerat intervall...
  • Sammanfoga celler / rader / kolumner utan att förlora data; Delat cellinnehåll; Kombinera duplicerade rader / kolumner... Förhindra duplicerade celler; Jämför intervall...
  • Välj Duplicera eller Unikt Rader; Välj tomma rader (alla celler är tomma); Super Find och Fuzzy Find i många arbetsböcker; Slumpmässigt val ...
  • Exakt kopia Flera celler utan att ändra formelreferens; Skapa referenser automatiskt till flera ark; Sätt in kulor, Kryssrutor och mer ...
  • Extrahera text, Lägg till text, ta bort efter position, Ta bort mellanslag; Skapa och skriva ut personsökningstalsatser; Konvertera mellan celler innehåll och kommentarer...
  • Superfilter (spara och tillämpa filterscheman på andra ark); Avancerad sortering efter månad / vecka / dag, frekvens och mer; Specialfilter av fet, kursiv ...
  • Kombinera arbetsböcker och arbetsblad; Sammanfoga tabeller baserat på nyckelkolumner; Dela data i flera ark; Batchkonvertera xls, xlsx och PDF...
  • Mer än 300 kraftfulla funktioner. Stöder Office / Excel 2007-2021 och 365. Stöder alla språk. Enkel implementering i ditt företag eller organisation. Fullständiga funktioner 30 dagars gratis provperiod. 60 dagars pengarna tillbaka-garanti.
kte-flik 201905

Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare

  • Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
  • Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
  • Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!
officetab botten
Sortera kommentarer efter
Kommentarer (17)
Inga betyg än. Bli först med att betygsätta!
Denna kommentar minimerades av moderatoren på webbplatsen
Hur man hittar och får värdet av tio (10) första synliga celler efter subtotalfiltrering i Excel?
Denna kommentar minimerades av moderatoren på webbplatsen
Ola,


Vad är det för sabel eller nummero 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?
Tack.
Denna kommentar minimerades av moderatoren på webbplatsen
Utmärkt modul i VBA, fungerade perfekt. Jag uppskattar detta! Tack så mycket för det här inlägget!!!!
Denna kommentar minimerades av moderatoren på webbplatsen
Kan någon förklara hur denna formel faktiskt fungerar?

=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))
Denna kommentar minimerades av moderatoren på webbplatsen
Jag får hela tiden ett körtidsfel '91' Objektvariabel eller Med blockvariabel inte inställd. Mitt arbetsblad är Sheet1 med titeln AllBrands. Detta är min formel:

Sub FirstVisibleCell()
Med kalkylblad("ALLBRANDS").AutoFilter.Range
ActiveCell.Value2 = Range("H" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Sluta med

End Sub

Vilken hjälp som helst kommer att uppskattas!
Denna kommentar minimerades av moderatoren på webbplatsen
Hej Bub,
Koden fungerar bra i mitt fall. Vilken Excel-version använder du?
Denna kommentar minimerades av moderatoren på webbplatsen
Tyvärr - varken formeln - som ger mig ett #VALUE-fel eller VBA fungerar för mig och ger mig ett körtidsfel '1004'
Synd eftersom jag har Office 2019 och jag förväntade mig att en av dessa funktioner skulle fungera vid filtrering av specifika celler... :-(
Denna kommentar minimerades av moderatoren på webbplatsen
‌underbart🌺 Tusen tack🙏
Denna kommentar minimerades av moderatoren på webbplatsen
Tusen tack🙏🌺
Denna kommentar minimerades av moderatoren på webbplatsen
Det fungerar. Tack så mycket...
Denna kommentar minimerades av moderatoren på webbplatsen
Den här formeln fungerar, men tänk på att om du har tomma celler kan formeln inte fungera och välja det första värdet i hela tabellen, inte bara i de filtrerade resultaten. Lösningen jag hittade var att ersätta tomma celler med NULL eller ett mellanslag.
Denna kommentar minimerades av moderatoren på webbplatsen
Först hade jag tomrum... sedan fylldes alla celler men fortfarande hade #VALUE-svaret. Förhoppningsvis fungerar denna formel på text också...! Tack för tipset i alla fall ;-)
Denna kommentar minimerades av moderatoren på webbplatsen
Så för mig fungerar svaret ovan helt enkelt inte så bra. Jag har en arbetsbok med över 23k rader och är något jag har arbetat med att optimera under åren. Min lösning kom till mig i morse i ännu en gnista av inspiration.
Om du antar att du använder en TABELL för att få de data du vill göra så här: En rad (jag kallade den "Rownmbr") är tillägnad: =CELL([@[DIN FÖRSTASTRO]])
Utanför tabellen gör du en formel någonstans:=INDIREKT(CONCATENATE("A";SUBTOTAL(105;Tabell1[Radmbr])))
Du ersätter helt enkelt "A" med var du vill hämta data från. För mig fungerar detta utmärkt, och det är inte en tung formel att använda som kommer att försvinna dokumentet ytterligare.
Denna kommentar minimerades av moderatoren på webbplatsen
Denna lösning fungerade perfekt för mig, eftersom jag använde ett bord. Instruktionerna var svåra att följa, så förhoppningsvis blir den här förklaringen lite tydligare.
Säg att du har en excel-tabell som heter "Tabell_Name." Skapa först en ny kolumn i din tabell och döp den till "RowNumber". 
I den nya kolumnen anger du formeln "=ROW([@RowNumber])" Detta kommer sedan att fylla den nya kolumnen med
I cellen där du vill visa det första synliga värdet anger du formeln "=INDIREKT("A"&SUBTOTAL(105,Tabell_Name[RadNumber]))" "A" är bokstaven i kolumnen som innehåller det värde du vill ha att återvända.
Funktionen SUBTOTAL(105,...) returnerar minimivärdet för alla synliga rader i ett givet intervall, vilket i fallet ovan returnerar radnumret för den första synliga raden.
Funktionen INDIREKTA returnerar värdet på cellen för en given celladress. Det är därför du behöver den första delen av formeln för att innehålla kolumnbokstaven för den kolumn du vill visa. Den andra delen av formeln returnerar radnumret.


Denna kommentar minimerades av moderatoren på webbplatsen
Kan du hjälpa mig att skriva den här formeln i Google Sheet med arrayformula ()

{=INDEX(C2:C19,MIN(IF(SUBTOTAL(3,OFFSET(C2,ROW(C2:C19)-ROW(C2),0)),ROW(C2:C19)-ROW(C2)+1)))}
Denna kommentar minimerades av moderatoren på webbplatsen
I följande VBA-kod, kan du förklara vad som gör SpecialCells(xlCellTypeVisible)(1) betyda? Vad är (1) används för efter SpecialCells(xlCellTypeVisible)?
ActiveCell.Value2 = Range("C" & .Offset(1, 0).SpecialCells(xlCellTypeVisible)(1).Row).Value2
Denna kommentar minimerades av moderatoren på webbplatsen
Tack!
Det finns inga kommentarer här ännu
Lämna dina kommentarer
Postar som gäst
×
Betygsätt detta inlägg:
0   Tecken
Föreslagna platser

Följ oss

Copyright © 2009 - www.extendoffice.com. | Alla rättigheter förbehållna. Drivs av ExtendOffice. | | Sitemap
Microsoft och Office-logotypen är varumärken eller registrerade varumärken som tillhör Microsoft Corporation i USA och / eller andra länder.
Skyddad av Sectigo SSL