Формула Excel: копировать значение из каждой n-й строки -

Содержание

Общая формула

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

Резюме

Чтобы скопировать значения или создать ссылки с шаблоном, например, каждая 3-я строка, каждая 7-я строка и т. Д., Вы можете использовать формулу, основанную на функциях СМЕЩЕНИЕ и СТРОКА. В показанном примере формула в D5:

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

Что можно скопировать в столбец D, чтобы получить n-е значения из столбца B.

Объяснение

В Excel вы не можете легко скопировать формулы, которые должны пропускать строки или столбцы по определенному шаблону, потому что ссылки в формуле автоматически изменятся в соответствии с отношениями между исходной исходной ячейкой и новой целевой ячейкой. Однако, приложив немного усилий, можно создать ссылки на формулы, соответствующие определенным шаблонам.

В этом случае мы используем функцию OFFSET, которая предназначена для создания ссылок на другие ячейки или диапазоны ячеек на основе заданной начальной точки или источника.

В показанном примере начальная ячейка - B5, предоставленная для OFFSET в качестве аргумента ссылки и фиксированная как абсолютная ссылка, поэтому она не изменится при копировании формулы:

=OFFSET($B$5

Чтобы вычислить правильное значение для аргумента строк, мы используем подформулу, основанную на функции СТРОКА:

(ROW(D1)*3)-1

Строка получает первую ячейку в том же столбце и возвращает 1. Этот результат умножается на n, которое в этом примере равно 3, чтобы получить 3.

По мере того, как формула копируется в столбец, значение, возвращаемое ROW, увеличивается на 1, что и создает «n-й шаблон».

Причина, по которой мы вычитаем 1 в каждом случае, заключается в том, что функция OFFSET не включает ссылочную ячейку, когда применяется аргумент rows. Другими словами, смещение на одну строку от A1 возвращает A2:

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

Вычитание 1 учитывает это поведение.

Начиная с 1

Если вы хотите начать копирование с первой строки, а затем следовать каждому n-му шаблону, вы можете настроить формулу следующим образом:

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

Интересные статьи...