Excel-kaava: Kuinka korjata #SPILL! virhe -

Sisällysluettelo

Yhteenveto

#SPILL-virhe tapahtuu, kun jokin laskentataulukossa estää vuotoalueen. Ratkaisu on yleensä puhdistaa vuotoalue mahdollisista esteistä. Katso lisätietoja ja ratkaisuvaiheet alla.

Selitys

Tietoja vuotamisesta ja #SPILL! virhe

Kun dynaamiset taulukot otetaan käyttöön Excelissä, useita arvoja palauttavat kaavat "heittävät" nämä arvot suoraan laskentataulukkoon. Arvoja ympäröivää suorakulmiota kutsutaan "vuotoalueeksi". Kun tiedot muuttuvat, vuotoalue laajenee tai supistuu tarpeen mukaan. Saatat nähdä uusia arvoja lisätty tai olemassa olevat arvot katoavat.

Video: Valuminen ja vuotoalue

#SPILL-virhe tapahtuu, kun jokin laskentataulukossa estää vuotoalueen. Joskus tätä odotetaan. Olet esimerkiksi kirjoittanut kaavan odottaen sen vuotavan, mutta laskentataulukossa olevat tiedot ovat tiellä. Ratkaisu on vain tyhjentää vuotoalue mahdollisista esteistä.

Joskus virhe saattaa kuitenkin olla odottamaton ja siksi hämmentävä. Lue alla, miten tämä virhe voi aiheutua ja miten voit ratkaista ongelman.

Roiskekäyttäytyminen on natiivia

On tärkeää ymmärtää, että vuotokäyttäytyminen on automaattista ja natiivia. Dynaamisessa Excelissä (tällä hetkellä vain Office 365 Excel) mikä tahansa kaava, jopa yksinkertainen kaava ilman toimintoja, voi levittää tuloksia. Vaikka on olemassa tapoja estää kaava palauttamasta useita tuloksia, itse kaatumista ei voida poistaa käytöstä globaalilla asetuksella.

Vastaavasti Excelissä ei ole vaihtoehtoa "poistaa #SPILL-virheitä. Voit korjata #SPILL-virheen tutkimalla ja ratkaisemalla ongelman perussyyn.

Korjaa # 1 - poista vuotoalue

Tämä on yksinkertaisin tapa ratkaista. Kaavan pitäisi vuotaa useita arvoja, mutta se palauttaa sen sijaan #SPILL! koska jotain on tiellä. Voit ratkaista virheen valitsemalla minkä tahansa solun vuotoalueelta, jotta näet sen rajat. Sitten joko siirrä estotiedot uuteen paikkaan tai poista tiedot kokonaan. Huomaa, että vuotoalueella olevien solujen on oltava tyhjiä, joten kiinnitä huomiota soluihin, jotka sisältävät näkymättömiä merkkejä, kuten välilyöntejä.

Alla olevassa näytössä "x" estää vuotoaluetta:

Kun x poistetaan, UNIQUE-funktio vuotaa tulokset normaalisti:

Korjaa # 2 - lisää @ merkki

Ennen dynaamisia matriiseja Excel sovelsi hiljaisesti "implisiittiseksi leikkaukseksi" kutsuttua käyttäytymistä varmistaakseen, että tietyt kaavat, jotka saattavat palauttaa useita tuloksia, palauttivat vain yhden tuloksen. Ei-dynaamisessa taulukko Excelissä nämä kaavat palauttavat normaalin näköisen tuloksen ilman virheitä. Tietyissä tapauksissa sama dynaamiseen Exceliin syötetty kaava voi kuitenkin aiheuttaa #SPILL-virheen. Esimerkiksi alla olevassa näytössä solu D5 sisältää tämän kaavan, kopioitu alaspäin:

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

Tämä kaava ei aiheuta virhettä, esimerkiksi Excel 2016, koska implisiittinen leikkaus estäisi kaavaa palauttamasta useita tuloksia. Dynaamisessa Excelissä kaava palauttaa kuitenkin useammat vuodot laskentataulukkoon ja törmäävät toisiinsa, koska kaava kopioidaan D5: D10: stä alaspäin.

Yksi ratkaisu on käyttää @ -merkkiä implisiittisen leikkauksen mahdollistamiseksi näin:

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

Tämän muutoksen myötä kukin kaava palauttaa yhden tuloksen uudelleen ja #SPILL-virhe häviää.

Huomaa: Tämä selittää osittain, miksi saatat yllättäen nähdä @ -merkin Excelin vanhemmissa versioissa luotuissa kaavoissa. Tämä tehdään yhteensopivuuden ylläpitämiseksi. Koska Excelin vanhempien versioiden kaavat eivät voi levitä useisiin soluihin, @ lisätään varmistamaan sama käyttäytyminen, kun kaava avataan Dynamic Excelissä.

Korjaa # 3 - natiivi dynaaminen matriisikaava

Toinen (parempi) tapa korjata yllä esitetty #SPILL-virhe on käyttää D5: ssä natiivia dynaamista matriisikaavaa seuraavasti:

=B5:B10+3

Dynaamisessa Excelissä tämä yksittäinen kaava valuu tulokset alueelle D5: D10, kuten alla olevasta kuvakaappauksesta näkyy:

Huomaa, että absoluuttista viittausta ei tarvitse käyttää.

Mielenkiintoisia artikkeleita...