Формула на Excel: Как да поправим #SPILL! грешка -

Съдържание

Обобщение

Грешка #SPILL възниква, когато обхватът на разлива е блокиран от нещо на работния лист. Решението обикновено е да се изчисти обхвата на разлива от всякакви препятстващи данни. Вижте по-долу за повече информация и стъпки за разрешаване.

Обяснение

Относно разливането и #SPILL! грешка

С въвеждането на Dynamic Arrays в Excel, формулите, които връщат множество стойности, „разливат“ тези стойности директно върху работния лист. Правоъгълникът, който затваря стойностите, се нарича „обхват на разлива“. Когато данните се променят, обхватът на разлива ще се разшири или свие, ако е необходимо. Може да видите добавени нови стойности или съществуващи стойности да изчезнат.

Видео: Разливане и обхват на разлива

Грешка #SPILL възниква, когато обхватът на разлива е блокиран от нещо на работния лист. Понякога това се очаква. Например, въвели сте формула, очаквайки да се разлее, но съществуващите данни в работния лист са на път. Решението е просто да изчистите обхвата на разлива от всякакви препятстващи данни.

Понякога обаче грешката може да е неочаквана и следователно объркваща. Прочетете по-долу как може да бъде причинена тази грешка и какво можете да направите, за да я разрешите.

Поведението на разлива е естествено

Важно е да разберете, че поведението на разлива е автоматично и естествено. В Dynamic Excel (понастоящем само за Office 365 Excel) всяка формула, дори проста формула без функции, може да разлее резултати. Въпреки че има начини да се спре формулата да връща множество резултати, самото разливане не може да бъде деактивирано с глобална настройка.

По подобен начин в Excel няма опция за „деактивиране на грешки #SPILL. За да коригирате грешка #SPILL, ще трябва да проучите и разрешите основната причина за проблема.

Поправка # 1 - изчистване на обхвата на разлива

Това е най-простият случай за разрешаване. Формулата трябва да разлива множество стойности, но вместо това връща #SPILL! защото нещо е на пътя. За да разрешите грешката, изберете която и да е клетка от обхвата на разлива, за да можете да видите нейните граници. След това или преместете блокиращите данни на ново място, или изтрийте данните изобщо. Имайте предвид, че клетките в обхвата на разлива трябва да са празни, затова обърнете внимание на клетки, които съдържат невидими символи, като интервали.

На екрана по-долу „x“ блокира обхвата на разлива:

След като "x" бъде премахнат, функцията UNIQUE разлива резултатите нормално:

Поправка # 2 - добавяне на @ знак

Преди Dynamic Arrays Excel безшумно прилага поведение, наречено „неявно пресичане“, за да гарантира, че определени формули с потенциал да върнат множество резултати връщат само един резултат. В нединамичния масив Excel тези формули връщат нормално изглеждащ резултат без грешка. В някои случаи обаче същата формула, въведена в Dynamic Excel, може да генерира грешка #SPILL. Например на екрана по-долу клетка D5 съдържа тази формула, копирана надолу:

=$B$5:$B$10+3

Тази формула няма да доведе до грешка в, да речем Excel 2016, защото неявното пресичане би попречило на формулата да връща множество резултати. Въпреки това, в Dynamic Excel, формулата автоматично връща разливането на множество резултати върху работния лист и които се сриват един в друг, тъй като формулата се копира от D5: D10.

Едно решение е да се използва символът @, за да се даде възможност на неявно пресичане по следния начин:

= @$B$5:$B$10+3

С тази промяна всяка формула връща отново един резултат и грешката #SPILL изчезва.

Забележка: това частично обяснява защо изведнъж може да видите символа „@“ да се появи във формули, създадени в по-стари версии на Excel. Това се прави, за да се поддържа съвместимост. Тъй като формулите в по-старите версии на Excel не могат да се разлеят в множество клетки, @ се добавя, за да осигури същото поведение, когато формулата се отвори в Dynamic Excel.

Поправка # 3 - естествена формула на динамичен масив

Друг (по-добър) начин за коригиране на грешката #SPILL, показана по-горе, е да се използва естествена формула за динамичен масив в D5 по следния начин:

=B5:B10+3

В Dynamic Excel тази единична формула ще разлее резултатите в диапазона D5: D10, както се вижда на екранната снимка по-долу:

Забележете, че няма нужда да използвате абсолютна референция.

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