zurück Wenn Sie sich fragen, wie jemand jedes n-te Element in einer Spalte finden kann. In diesem Artikel erfahren Sie, wie Sie jedes n-te Element aus einer Liste zurückgeben. Wir werden VBA-Code verwenden, um das Ergebnis zu finden.

Frage: Ich möchte, dass ein Makrocode jeden n-ten Wert aus einer Spalte extrahiert. Ich versuche, Werte von einem Blatt / einer Spalte in ein anderes Blatt / eine andere Spalte zu ziehen. Ich habe versucht, viele Funktionen wie OFFSET zu verwenden, konnte aber die Formel, die das Ergebnis liefern kann, nicht herausfinden.

Nehmen wir ein Beispiel von 100 Werten in Spalte A und wollen jeden 10. Wert in Spalte B herausfinden. Die Stichprobenwerte von Zelle A1 gleich 1 bis Zelle A100 gleich 100; Es folgt die Momentaufnahme der Daten in Spalte A:

img1

Um das Ergebnis zu erhalten, müssen Sie die folgenden Schritte ausführen, um den VB-Editor zu starten. Klicken Sie auf die Registerkarte Entwickler. Wählen Sie in der Gruppe Code die Option Visual Basic

img2

aus * Kopieren Sie den folgenden Code in das Standardmodul

Function INDEXN(InputRange As Range, N As Integer) As Variant

' returns every N-th item from InputRange' --- Comment

' select the desired target range for the function and' --- Comment

' enter as an array function with Ctrl+Shift+Enter.' --- Comment

Dim ItemList() As Variant, c As Range, i As Long, iCount As Long

i = 0

iCount = 0

ReDim ItemList(1 To InputRange.Cells.Count \ N)

For Each c In InputRange

i = i + 1

If i Mod N = 0 Then

iCount = iCount + 1

On Error Resume Next

ItemList(iCount) = c.Value

On Error 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

img3

Um jedes n-te Element im Bereich B1: B10 zu erhalten, lautet die Formel \ {= INDEXN ($ A $ 1: $ A $ 100, 10)} Hinweis: Dies ist eine Array-Formel. Daher müssen Strg + Umschalt + Ende gleichzeitig gedrückt werden

img4

Um jeden 7. Wert aus dem Bereich A1 zu erhalten: A100; Wir werden das letzte Argument von 10 auf 7 ändern und die Formel lautet \ {= INDEXN ($ A $ 1: $ A $ 100, 7)}

img5

Auf diese Weise können wir jedes n-te Element von einem Blatt zum Hauptblatt zurückgeben.

Die Formel in einem anderen Blatt enthält die Blattreferenz \ {= INDEXN (Sheet1! $ A $ 1: $ A $ 100, 10)}

img6

Fazit: Mit Hilfe der oben genannten benutzerdefinierten Funktion können wir flexibel jedes n-te Element von einem Blatt zum anderen herausfinden.

image 48

Wenn Ihnen unsere Blogs gefallen haben, teilen Sie sie Ihren Freunden auf Facebook mit. Und Sie können uns auch auf Twitter und Facebook folgen. Wir würden gerne von Ihnen hören, uns mitteilen, wie wir unsere Arbeit verbessern, ergänzen oder innovieren und für Sie verbessern können. Schreiben Sie uns an [email protected]