#ПРОЛИВАТЬ! ошибка в Excel – что это значит и как исправить

Что означает #РАЗБИВКА в Excel? Это ошибка, возникающая, когда формула не может заполнить несколько ячеек результатами вычислений. Чтобы узнать, что может вызвать эту ошибку и как ее устранить, продолжайте читать.

Только представьте себе: вы перешли на Microsoft Office 365 с последними обновлениями Excel, и по какой-то причине испытанные формулы, которые вы использовали годами, внезапно перестали работать. Что бы вы ни делали, теперь вы получаете ошибку #SPILL. Кто-нибудь знает, что это значит? Конечно, мы делаем, и вы получите свое решение через мгновение 🙂

Что означает #РАЗБИВКА в Excel?

В общем, #РАЗЛИВ! ошибка возникает, когда формула выдает несколько результатов, но не может вывести их все на лист.

Прежде чем мы углубимся в конкретные варианты использования, давайте получим общее представление о разливе в Excel.

С запуском динамических массивов в Excel 365 любая формула, которая дает несколько результатов вычислений, автоматически «распространяет» эти результаты в соседние ячейки. Обратите внимание, любая формула, даже та, которая изначально не предназначена для работы с массивами. Диапазон ячеек, содержащих результаты, называется диапазоном заполнения. И если что-то на листе мешает заполнить этот диапазон, #ПРОЛИВ! возникает ошибка.

По большей части такое поведение понятно и предсказуемо. Например, если ожидается, что ваша формула вернет более одного значения, но соседние ячейки заполнены другими данными, просто удалите эти данные, и ошибка исчезнет.

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

Как исправить #РАЗЛИВ! ошибка в экселе

Как упоминалось выше, #РАЗЛИВ! ошибка может быть вызвана различными причинами. Чтобы узнать точную причину проблемы, щелкните значок предупреждения (желтый ромб с восклицательным знаком) и прочитайте сообщение в первой строке, выделенное серым цветом:
Причина ошибки #SPILL

После того, как вы определили причину, найдите соответствующий пример ниже с подробными инструкциями по устранению этого конкретного случая.

Диапазон разлива не пуст.

Причина: область, которая будет заполнена результатами формулы, содержит непустые ячейки.

Решение: очистить предполагаемый диапазон разлива.

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

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

Чтобы обнаружить такие клетки, нажмите на предупреждающий знак, и вы увидите это объяснение – Диапазон разлива не пуст.. Под ним есть несколько вариантов. Нажмите «Выбрать мешающие ячейки», и Excel покажет вам, какие ячейки предотвращают разбрызгивание формулы.

На приведенном ниже снимке экрана мешающей ячейкой является A6, которая содержит пустую строку (“”), возвращаемую формулой.
Выберите мешающие ячейки, которые предотвращают расплескивание формулы.

Чтобы очистить блокирующие ячейки, перейдите к Дом вкладка > Редактирование группу и нажмите чистый > Очистить все.

Диапазон разброса содержит объединенные ячейки

Причина: Разлив не работает с объединенными ячейками.

Решение: разъединить ячейки в области разлива или переместить формулу в другое место, где нет объединенных ячеек.

Если в спроецированном разлитом массиве есть одна или несколько объединенных ячеек, отображается следующее сообщение об ошибке: Диапазон разлива объединил ячейку.

Если у вас возникли трудности с визуальным обнаружением объединенных ячеек, используйте параметр «Выбрать мешающие ячейки», чтобы перейти к проблемным ячейкам:
Ошибка SPILL вызвана объединенными ячейками.

Диапазон разлива в таблице

Причина: динамические массивы не поддерживаются в таблицах Excel.

Решение: преобразовать таблицу в обычный диапазон или поместить формулу за пределы таблицы, чтобы она могла растекаться. Не совсем понятно, почему формулы динамического массива не работают из таблиц Excel (может быть, из-за специфического синтаксиса структурированных ссылок), но все равно эти две очень полезные вещи не уживаются 🙁
Динамические массивы не поддерживаются в таблицах Excel.

Чтобы подтвердить основную причину проблемы, щелкните значок с восклицательным знаком, и вы увидите этот текст в первой строке – Диапазон разлива в таблице.
Ошибка SPILL вызвана динамическим массивом в таблице.

В этом случае лучшее, что вы можете сделать, это преобразовать таблицу в диапазон. Для этого щелкните правой кнопкой мыши в любом месте таблицы и выберите Стол > Преобразовать в диапазон. Кроме того, вы можете переместить формулу за пределы таблицы.

Диапазон разлива неизвестен

Причина: Excel не может установить размер разлитого массива.

Решение: Попробуйте разработать другую формулу для своей задачи.

При использовании изменчивых функций, таких как СЛУЧАЙ, СЛУЧАЙ или СЛУЧМЕЖДУ, в сочетании с функциями динамического массива может возникнуть ошибка #SPILL, поскольку массив, возвращаемый изменчивой функцией, изменяется между вычислениями электронной таблицы, а функция «обертки» не может определить его размер.

В такой ситуации сообщение об ошибке говорит – Диапазон разлива неизвестен.

Например, следующая формула выдает ошибку #ПРОЛИВ! ошибка, потому что вывод RANDBETWEEN постоянно изменяется, а SEQUENCE не знает, сколько значений генерировать:

=ПОСЛЕДОВАТЕЛЬНОСТЬ(СЛУЧМЕЖДУ(1100))
Нестабильный массив вызывает ошибку SPILL.

Диапазон разлива слишком большой

Причина: Excel не может вывести разбросанный массив, так как он выходит за границы электронной таблицы.

Решение: вместо вычисления целых столбцов используйте ссылку на используемый диапазон, отдельную ячейку или добавьте оператор @ для выполнения неявного пересечения.

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

Предположим, у вас есть список чисел в столбце B, а в столбце C вы хотите вернуть 10% этих чисел.

В традиционном Excel 2019 и более ранних версиях следующая формула работала без сбоев (в левой части изображения ниже она находится в ячейках с C2 по C7):

=В:В*10%

В динамическом Excel 365 та же формула вызывает ошибку #SPILL.
Ошибка SPILL возникает из-за того, что недостаточно места для отображения всех результатов.

Причина ошибки Диапазон разлива слишком большой.
Диапазон разлива слишком велик.

Почему формула не работает в новом Excel? Потому что неявное пересечение больше не выполняется молча в фоновом режиме. Термин звучит загадочно, но логика, стоящая за ним, довольно проста — свести несколько значений к одному значению.

В версиях до 365 это было поведением Excel по умолчанию — поскольку ячейка могла содержать только одно значение, формула была вынуждена возвращать один результат. В нашем примере, несмотря на то, что мы указываем целый столбец (B:B), Excel обрабатывает только одно значение в той же строке, что и формула. Таким образом, формула в C2 вычисляет 10 % значения в B2, формула в C3 вычисляет 10 % значения в B3 и так далее.

В динамическом массиве Excel поведение по умолчанию другое: любая формула, которая потенциально может возвращать несколько результатов, автоматически переносит их на рабочий лист. В нашем случае Excel умножает каждую ячейку в столбце B на 10%, получает более миллиона результатов (точнее, 1 048 576), пытается вывести их все в столбце C, начиная с C2, но достигает конца сетки рабочего листа — отсюда #ОШИБКА РАЗЛИВ. Угадайте, что произойдет, если мы поместим формулу в ячейку C1? Да, это сработает, потому что на этот раз ячеек достаточно для заполнения – диапазон разлива займет ровно 1 048 576 ячеек!

Решение 1. Обращайтесь к диапазонам, а не к столбцам

Это очень разумный подход — вместо того, чтобы ссылаться на целые столбцы, ссылайтесь только на соответствующие данные. Помимо исправления ошибки #SPILL, это также помогает сэкономить ресурсы Excel и повысить производительность.

Для нашего примера набора данных формула выглядит так:

=В2:В10*10%

Формула вводится только в одну ячейку (C2). В результате получается динамический массив, который автоматически распределяется по нескольким ячейкам:
Ссылайтесь на диапазоны, а не на столбцы.

Примечание. Поскольку динамические массивы не поддерживаются в таблицах Excel, это решение работает только в пределах нормы.

Решение 2. Вычислите одну ячейку и скопируйте формулу вниз

Это традиционный подход — сослаться на одну ячейку в той же строке и скопировать формулу вниз.

В нашем случае приведенная ниже формула переходит к C2, а затем вы перетаскиваете ее вниз через C10:

=В2*10%

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

Решение 3. Применить неявное пересечение

Этот подход немного сложнее — используйте неявный оператор пересечения (@символ), который был введен в Excel 365 как часть обновления динамических массивов.

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

Для нашего примера набора данных формула принимает следующий вид:

=@В:В*10%

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

знак равно[@Sales]*10%
Используйте неявное пересечение, чтобы исправить ошибку SPILL в Excel 365.

В какой-то степени это объясняет, почему символ “@” иногда появляется в формулах, созданных в старых версиях, для сохранения совместимости. Поскольку в преддинамическом Excel формулы не могут распространяться на несколько ячеек, оператор неявного пересечения обеспечивает такое же поведение при импорте формулы в динамический массив Excel.

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

Вот как можно устранить и исправить ошибку #SPILL в Excel. В следующей статье мы собираемся исследовать и устранить эту ошибку в нескольких популярных формулах, таких как ВПР, СОВПАДЕНИЕ С ИНДЕКСОМ, СУММЕСЛИ и т. д. Спасибо за чтение и, пожалуйста, следите за обновлениями!

Вас также могут заинтересовать:

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *