Методы получения предыдущего значения в Excel
Чтобы получить предыдущее значение в той же колонке, достаточно использовать относительную ссылку на ячейку выше (например, =A1, находясь в ячейке A2). Если задача сложнее — найти значение по предыдущей дате или условию — применяются комбинации функций ИНДЕКС, ПОИСКПОЗ или ВПР. Выбор метода зависит от структуры ваших данных: простой список, таблица с датами или динамический диапазон.
Простая ссылка на предыдущую строку
Самый частый сценарий — сравнение текущего показателя с показателем за предыдущий период (строку). В этом случае не нужны сложные функции, достаточно адресации ячеек.
Введите в ячейку формулу, указывающую на ячейку непосредственно над ней:
=A1 (если формула вводится в A2).
Используйте относительные ссылки (без знаков $). При протягивании формулы вниз (маркером автозаполнения) Excel автоматически изменит A1 на A2, A3 и так далее, всегда беря значение из строки выше.
Пример расчета динамики:
Допустим, в столбце B находятся продажи по дням. В столбце C нужно показать разницу с предыдущим днем.
- В ячейку
C2введите:=B2-B1. - Протяните формулу до конца таблицы.
- Для первой строки (
C1) формула не нужна или должна возвращать 0/пустоту, так как предыдущего значения нет.
Поиск предыдущего значения по дате
Если данные не идут сплошным списком (есть пропуски в датах) или вам нужно найти значение именно за конкретную прошлую дату, простая ссылка A1 не подойдет. Здесь необходим поиск.
Способ 1: Точное совпадение даты (функция ВПР)
Используйте этот метод, если в таблице гарантированно есть запись за вчерашний день.
Формула ищет дату «сегодня минус 1 день» и возвращает соответствующее значение:
=ВПР(A2-1; $A$2:$B$100; 2; 0)
Где A2 — текущая дата, $A$2:$B$100 — диапазон данных, 2 — номер столбца с искомым значением.
Способ 2: Ближайшая меньшая дата (ИНДЕКС + ПОИСКПОЗ)
Если за вчера данных нет, но нужно взять последнее доступное значение из прошлого:
=ИНДЕКС($B$2:$B$100; ПОИСКПОЗ(МАКС(ЕСЛИ($A$2:$A$100<A2; $A$2:$A$100)); $A$2:$A$100; 0))
Это формула массива. В старых версиях Excel её нужно подтверждать сочетанием Ctrl+Shift+Enter. В новых версиях (Office 365, Excel 2021+) она работает автоматически. Убедитесь, что столбец с датами отсортирован по возрастанию.
Работа с умными таблицами
Если ваш диапазон преобразован в «Умную таблицу» (через Вставка → Таблица), ссылки становятся более читаемыми, но логика остается прежней.
Для обращения к значению в той же колонке, но в предыдущей строке внутри таблицы, используйте функцию ИНДЕКС с вычислением номера строки:
=ИНДЕКС([Продажи]; СТРОКА()-СТРОКА(Таблица1[#Заголовки])-1)
Однако проще всего внутри таблицы использовать относительную ссылку на ячейку выше, как в обычном диапазоне. Структурированные ссылки типа =[@Продажи] относятся к текущей строке, поэтому для предыдущей строки лучше оставить классическую адресацию (например, =B2, если вы в B3), либо использовать ИНДЕКС для надежности при фильтрации.
Расчет скользящих показателей
Часто «предыдущее значение» нужно не само по себе, а для расчета тренда (скользящее среднее, максимум за период).
| Задача | Формула (для строки 5, диапазон A2:A5) | Пояснение |
|---|---|---|
| Среднее за 3 последних периода | =СРЗНАЧ(A3:A5) | Игнорирует старые данные, берет только «хвост» |
| Максимум за прошлый месяц | =МАКС($A$2:A4) | Ссылка на начало закрепляется, конец движется |
| Разница с предыдущим | =A5-A4 | Базовая арифметика |
Для создания динамического диапазона, который всегда включает последние N строк, удобно использовать функцию СМЕЩ:
=СРЗНАЧ(СМЕЩ(A5; -2; 0; 3; 1))
Эта формула берет 3 ячейки, заканчивая текущей (смещается вверх на 2 строки от текущей и захватывает высоту 3).
Частые ошибки
- #ССЫЛКА! в первой строке. При копировании формулы
=A1в самую первую строку данных (например, в A1) возникает ошибка, так как ячейкиA0не существует. Оберните формулу в проверку:=ЕСЛИ(СТРОКА()=2; ""; A1). - Неверный формат дат. При поиске по датам убедитесь, что в ячейках хранятся именно даты, а не текст. Текстовое представление «01.01.2026» не будет равно числу даты, и
ВПРвернет ошибку. - Сбитые ссылки при сортировке. Если вы используете жесткие ссылки на ячейки (например,
=B5), а затем отсортируете таблицу, связь между «текущим» и «предыдущим» логически разорвется. Для сортируемых данных лучше использовать формулы поиска по уникальному ключу (ID или дате).
FAQ
Как игнорировать ошибки, если предыдущего значения нет?
Используйте функцию ЕСЛИОШИБКА. Например: =ЕСЛИОШИБКА(A2-A1; 0). Если вычитание невозможно (первая строка или ошибка в источнике), формула вернет 0.
Можно ли получить предыдущее значение без формул? Да, с помощью Power Query. При загрузке данных можно добавить индексный столбец, выполнить слияние запроса с самим собой со смещением индекса на -1 и таким образом добавить колонку с предыдущим значением. Это предпочтительно для очень больших массивов данных, где формулы замедляют работу файла.
Как сослаться на предыдущее значение в сводной таблице? Напрямую формулами внутри сводной таблицы это сделать сложно. Лучше использовать встроенную функцию «Вычисления по полю» → «Разность от» (Difference From), выбрав направление «Назад» (Previous).