#SPILL грешки се връщат, когато една формула върне множество резултати, и Excel не може да върне резултатите в мрежата. За повече информация относно тези типове грешки вижте следните помощни теми:
Тази грешка възниква, когато диапазонът на пренасяне за прелета формула за масив не е празен.
Когато формулата е избрана, пунктираната граница ще показва предвидения диапазон на пренасяне.
Можете да изберете плаващата запетая за грешка и да изберете опцията Избор на преградни клетки , за да преминете незабавно през клетките, които пречат. След това можете да изчистите грешката, като изтриете или преместите елемента от преградната клетка. Веднага щом запретването бъде изчистено, формулата за масив ще прелее според предназначението си.
Excel не можа да определи размера на пренесения масив, защото е непостоянен и преоразмерява преминаванията между изчисленията. Например следната формула ще задейства тази #SPILL! Грешка:
=SEQUENCE(RANDBETWEEN(1,1000))
Динамичните преоразмеряния на масиви може да задействат допълнителни предавания на изчисленията, за да се гарантира, че електронната таблица е напълно изчислена. Ако размерът на масива продължава да се променя по време на тези допълнителни преминавания и не се стабилизира, Excel ще преобразува динамичния масив като #SPILL!.
Тази стойност за грешка обикновено се свързва с използването на функциите RAND, RANDARRAY и RANDBETWEEN . Други непостоянни функции, като OFFSET, INDIRECT и TODAY , не връщат различни стойности при всяко успешно изчисление.
Например когато се постави в клетка E2, както в примера по-долу, формулата =VLOOKUP(A:A;A:C;2;FALSE) би търсила преди това само ИД в клетка A2. В динамичния масив excel обаче формулата ще доведе до #SPILL! защото Excel ще прегледа цялата колона, ще върне 1 048 576 резултата и ще достигне края на мрежата на Excel.
Има 3 прости начина за разрешаване на този проблем:
# |
Подход |
Формула |
---|---|---|
1 |
Посочете само стойностите за справка, които ви интересуват. Този стил на формула ще върне динамичен масив, но не работи с таблици на Excel.
|
=VLOOKUP(A2:A7;A:C;2;FALSE) |
2 |
Посочете само стойността на същия ред и след това копирайте формулата надолу. Този традиционен стил на формула работи в таблици, но няма да върне динамичен масив.
|
=VLOOKUP(A2;A:C;2;FALSE) |
3 |
Поискайте от Excel да изпълни неявно сечение с помощта на оператора @ и след това да копира формулата надолу. Този стил на формула работи в таблици, но няма да върне динамичен масив.
|
=VLOOKUP(@A:A;A:C;2;FALSE) |
Прелелите формули за масиви не се поддържат в таблици на Excel. Опитайте да преместите формулата извън таблицата или да преобразувате таблицата в диапазон (щракнете върху Проектиране на таблица > Инструменти > Преобразуване в диапазон).
Прелетата формула за масив, която се опитвате да въведете, е причинила недостиг на памет от Excel. Опитайте да направите препратка към по-малък масив или диапазон.
Прелелите формули за масиви не могат да се прелеят в обединени клетки. Премахнете обединяването на въпросните клетки или преместете формулата в друг диапазон, който не се пресича с обединени клетки.
Когато формулата е избрана, пунктираната граница ще показва предвидения диапазон на пренасяне.
Можете да изберете плаващата запетая за грешка и да изберете опцията Избор на преградни клетки , за да преминете незабавно през клетките, които пречат. Веднага щом обединените клетки бъдат изчистени, формулата за масив ще се прелее по предназначение.
Excel не разпознава или не може да съгласува причината за тази грешка. Уверете се, че вашата формула съдържа всички задължителни аргументи за вашия сценарий.
Имате нужда от още помощ?
Вж. също
Винаги можете да попитате експерт в техническата общност на Excel или да получите поддръжка в Общността за отговори от.