Методы получения предыдущего значения в Excel

Иван Корнев·09.04.2026·4 мин

Чтобы получить предыдущее значение в той же колонке, достаточно использовать относительную ссылку на ячейку выше (например, =A1, находясь в ячейке A2). Если задача сложнее — найти значение по предыдущей дате или условию — применяются комбинации функций ИНДЕКС, ПОИСКПОЗ или ВПР. Выбор метода зависит от структуры ваших данных: простой список, таблица с датами или динамический диапазон.

Простая ссылка на предыдущую строку

Самый частый сценарий — сравнение текущего показателя с показателем за предыдущий период (строку). В этом случае не нужны сложные функции, достаточно адресации ячеек.

Введите в ячейку формулу, указывающую на ячейку непосредственно над ней: =A1 (если формула вводится в A2).

Используйте относительные ссылки (без знаков $). При протягивании формулы вниз (маркером автозаполнения) Excel автоматически изменит A1 на A2, A3 и так далее, всегда беря значение из строки выше.

Пример расчета динамики: Допустим, в столбце B находятся продажи по дням. В столбце C нужно показать разницу с предыдущим днем.

  1. В ячейку C2 введите: =B2-B1.
  2. Протяните формулу до конца таблицы.
  3. Для первой строки (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).