Returner hver n-th vare ved hjælp af VBA i Microsoft Excel

Anonim

Hvis du undrer dig over, hvordan nogen kan finde hvert niende element i en kolonne. I denne artikel lærer vi, hvordan du returnerer hver n-th vare fra en liste. Vi vil bruge VBA -kode til at finde resultatet.

Spørgsmål: Jeg vil have en makrokode til at udtrække hver niende værdi fra en kolonne. Jeg forsøger at trække værdier fra et ark / kolonne til et andet ark / kolonne. Jeg forsøgte at bruge mange funktioner som OFFSET, men kunne ikke finde ud af den formel, der kan give resultatet.

Lad os tage et eksempel på 100 værdier i kolonne A, og vi vil finde ud af hver 10th værdi i kolonne B

Prøveværdierne startende fra celle A1 lig med 1 til celle A100 lig med 100; følgende er snapshot af data i kolonne A:

For at få resultat skal vi følge nedenstående trin for at starte VB -editor

  • Klik på fanen Udvikler
  • Vælg Visual Basic i kodegruppen

  • Kopier nedenstående kode i standardmodulet
 Funktion INDEXN (InputRange As Range, N As Integer) As Variant 'returnerer hvert N-th element fra InputRange' --- Comment 'vælg det ønskede målinterval for funktionen og' --- Comment 'indtast som en array-funktion med Ctrl +Shift+Enter. ' --- Kommentar Dim ItemList () Som variant, c Som Range, i As Long, iCount As Long i = 0 iCount = 0 ReDim ItemList (1 til InputRange.Cells.Count \ N) For hver c In InputRange i = i + 1 Hvis i Mod N = 0 Så iCount = iCount + 1 Ved fejl Genoptag næste ItemList (iCount) = c.Værdi ved fejl GoTo 0 End If Next c INDEXN = ItemList If InputRange.Rows.Count> = InputRange.Columns.Count Then INDEXN = Application.WorksheetFunction.Transpose (INDEXN) End If Erase ItemList End Function 

  • For at få hver niende vare i område B1: B10 er formlen
  • {= INDEXN ($ A $ 1: $ A $ 100, 10)}

Bemærk: dette er en matrixformel; derfor skal Ctrl + Shift + End -tasterne trykkes sammen

  • For at få hver 7th værdi fra område A1: A100; vi vil ændre det sidste argument fra 10 til 7 & formlen vil være
  • {= INDEXN ($ A $ 1: $ A $ 100, 7)}

På denne måde kan vi returnere hver n-th vare fra et ark til master ark.

  • Formlen i det andet ark indeholder arkreference
  • {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}

Konklusion: Ved hjælp af ovennævnte brugerdefinerede funktion kan vi have fleksibilitet til at finde ud af hvert nende element fra et ark til et andet.

Hvis du kunne lide vores blogs, kan du dele den med dine venner på Facebook. Og også du kan følge os på Twitter og Facebook. Vi vil meget gerne høre fra dig, lad os vide, hvordan vi kan forbedre, supplere eller innovere vores arbejde og gøre det bedre for dig. Skriv til os på e -mail -stedet