Как усреднить последние N строк в Excel с пропусками и текстом
Работа с данными в Excel часто требует различных манипуляций, особенно когда речь идет о заполнении пустых ячеек или объединении текста с числами. Одна из распространенных задач — усреднение последних N строк, когда в данных могут быть пропуски или текстовые значения. В этой статье мы рассмотрим, как справиться с этой задачей, используя формулы Excel.
Пример данных
Предположим, вы имеете следующий набор данных в столбце A:
A |
---|
1 |
2 |
х |
3 |
4 |
5 |
6 |
7 |
у |
8 |
9 |
10 |
Если вы хотите получить среднее значение последних четырех строк (с пропуском ячеек, содержащих текст), вам нужно игнорировать строки, которые не являются числами. В этом случае мы будем усреднять значения от ячейки A8 до A11, игнорируя A9 и A10.
Динамическое усреднение
Поскольку данные могут обновляться, необходимо, чтобы формула была динамической и всегда учитывала последние N числовых строк. Существует несколько подходов для этой задачи.
Подход 1: Использование формулы Excel 2019
Для пользователей Excel 2019 можно использовать следующую формулу:
=AVERAGE(
INDEX(A:A,
AGGREGATE(14,7,ROW(A:A)/((ISNUMBER(A:A))*(A:A<>"")),4)):
INDEX(A:A,
MATCH(2,1/((ISNUMBER(A:A))*(A:A<>"")))
)
Объяснение формулы
-
MATCH: Находит позицию последнего числового значения в столбце A.
=MATCH(2,1/((ISNUMBER(A:A))*(A:A<>"")))
-
AGGREGATE: Возвращает 4-й по величине номер строки, содержащей числовое значение.
=AGGREGATE(14,7,ROW(A:A)/((ISNUMBER(A:A))*(A:A<>"")),4)
-
INDEX: Используется для получения значений ячеек согласно номерам строк, найденным ранее.
- AVERAGE: Объединяет в себе все значения и вычисляет среднее.
Подход 2: Упрощенная формула для MS365
Если вы используете Microsoft 365, можно воспользоваться более короткой формулой:
=AVERAGE(TAKE(FILTER(A:A,(ISNUMBER(A:A)*(A:A<>"")),""),-4))
Альтернативный способ для более старых версий
Для более старых версий Excel можно использовать следующее:
=AVERAGE(
INDEX(
$A:$A,
LARGE(
ISNUMBER($A$1:INDEX($A:$A, LOOKUP(2, 1 / $A:$A, ROW($A:$A)))) *
ROW($A$1:INDEX($A:$A, LOOKUP(2, 1 / $A:$A, ROW($A:$A)))),
{1; 2; 3; 4}
)
)
)
Объяснение альтернативного способа:
- LOOKUP: Находит номер последней ячейки с числом.
- INDEX: Создает массив значений, затем фильтрует их для получения только чисел.
- LARGE: Возвращает N-ю по величине строки, чтобы взять последние четыре числовых значения.
- AVERAGE: Вычисляет среднее.
Заключение
Теперь вы знаете, как усреднить последние N строк в Excel, независимо от наличия текстовых значений или пробелов. Эти формулы помогут вам эффективно управлять данными и получать точные результаты. Не забудьте адаптировать формулы под ваши специфические условия и версию Excel, чтобы оптимизировать ваш рабочий процесс!