W przypadku, gdy zastanawiasz się, jak ktoś może znaleźć każdy n-ty element w kolumnie. W tym artykule dowiemy się, jak zwrócić każdą n-tą pozycję z listy. Użyjemy kodu VBA, aby znaleźć wynik.
Pytanie: Chcę, aby kod makra wyodrębnił każdą n-tą wartość z kolumny. Próbuję przeciągnąć wartości z jednego arkusza/kolumny do innego arkusza/kolumny. Próbowałem użyć wielu funkcji, takich jak PRZESUNIĘCIE, ale nie byłem w stanie wymyślić formuły, która może dać wynik.
Weźmy przykład 100 wartości w kolumnie A i chcemy się dowiedzieć co 10NS wartość w kolumnie B
Wartości próbek począwszy od komórki A1 równej 1 do komórki A100 równej 100; poniżej znajduje się migawka danych w kolumnie A:
Aby uzyskać wynik, musimy wykonać poniższe kroki, aby uruchomić edytor VB
- Kliknij kartę Deweloper
- Z grupy Kod wybierz Visual Basic
- Skopiuj poniższy kod w standardowym module
Funkcja INDEXN(InputRange As Range, N As Integer) As Variant ' zwraca każdy N-ty element z InputRange' --- Komentarz ' wybierz żądany zakres docelowy dla funkcji i' --- Komentarz ' wprowadź jako funkcję tablicową z klawiszem Ctrl +Shift+Enter.' --- Komentarz 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 Jeśli i Mod N = 0 Wtedy iCount = iCount + 1 W przypadku błędu Wznów Następny ItemList(iCount) = c.Wartość w przypadku błędu GoTo 0 End If Next c INDEXN = ItemList If InputRange.Rows.Count >= InputRange.Columns.Count Następnie INDEXN = Application.WorksheetFunction.Transpose(INDEXN) End If Erase ItemList End Function
- Aby uzyskać każdą n-tą pozycję z zakresu B1:B10, formuła to
- {=INDEXN($A$1:$A$100, 10)}
Uwaga: jest to formuła tablicowa; stąd Ctrl + Shift + End muszą być wciśnięte jednocześnie
- Aby zdobyć co 7NS wartość z zakresu A1:A100; zmienimy ostatni argument z 10 na 7, a formuła będzie
- {=INDEKSN($A$1:$A$100, 7)}
W ten sposób możemy zwrócić każdy n-ty element z jednego arkusza do arkusza wzorcowego.
- Formuła w innym arkuszu będzie zawierać odniesienie do arkusza
- {=INDEXN(Arkusz1!$A$1:$A$100, 10)}
Wniosek: Za pomocą powyższej funkcji zdefiniowanej przez użytkownika możemy mieć elastyczność, aby znaleźć każdy n-ty element z jednego arkusza do drugiego.
Jeśli podobały Ci się nasze blogi, podziel się nimi ze znajomymi na Facebooku. A także możesz śledzić nas na Twitterze i Facebooku. Chcielibyśmy usłyszeć od Ciebie, daj nam znać, jak możemy ulepszyć, uzupełnić lub unowocześnić naszą pracę i uczynić ją lepszą dla Ciebie. Napisz do nas na stronie e-mail