Formuła programu Excel: Kopiuj wartość z każdego n-tego wiersza -

Spisie treści

Formuła ogólna

=OFFSET($B$5,(ROW(A1)*n)-1,0)

Podsumowanie

Aby skopiować wartości lub wygenerować odniesienia ze wzorcem, takim jak co trzeci wiersz, co siódmy wiersz, itp., Możesz użyć formuły opartej na funkcjach OFFSET i ROW. W przedstawionym przykładzie formuła w D5 to:

=OFFSET($B$5,(ROW(D1)*3)-1,0)

Które można skopiować w dół kolumny D, aby pobrać n-te wartości z kolumny B.

Wyjaśnienie

W programie Excel nie można łatwo kopiować formuł, które muszą pomijać wiersze lub kolumny według określonego wzorca, ponieważ odwołania w formule zostaną automatycznie zmienione zgodnie z relacją między pierwotną komórką źródłową a nową komórką docelową. Jednak przy odrobinie pracy można skonstruować odwołania do formuł, które będą zgodne z określonymi wzorami.

W tym przypadku używamy funkcji PRZESUNIĘCIE, która służy do tworzenia odwołań do innych komórek lub zakresów komórek na podstawie danego punktu początkowego lub źródła.

W pokazanym przykładzie komórką początkową jest B5, przekazana do OFFSET jako argument odniesienia i ustalona jako odniesienie bezwzględne, więc nie zmieni się podczas kopiowania formuły:

=OFFSET($B$5

Aby obliczyć poprawną wartość argumentu wierszy, używamy formuły podrzędnej opartej na funkcji WIERSZ:

(ROW(D1)*3)-1

Wiersz otrzymuje pierwszą komórkę w tej samej kolumnie i zwraca 1. Ten wynik jest mnożony przez n, które w tym przykładzie wynosi 3, aby uzyskać 3.

Gdy formuła jest kopiowana w dół kolumny, wartość zwracana przez WIERSZ zwiększa się o 1, co tworzy „n-ty wzór”.

Powodem, dla którego odejmujemy 1 w każdym przypadku, jest to, że funkcja PRZESUNIĘCIE nie obejmuje komórki odniesienia, gdy stosowany jest argument wierszy. Innymi słowy, przesunięcie o jeden wiersz z A1 zwraca A2:

=OFFSET(A1,1,0) // returns A2

Odejmowanie 1 uwzględnia to zachowanie.

Począwszy od 1

Jeśli chcesz rozpocząć kopiowanie od pierwszego wiersza, a następnie postępować zgodnie z co n-tym wzorem, możesz dostosować formułę w następujący sposób:

=OFFSET($B$5,(ROW(A1)-1)*n,0)

Interesujące artykuły...