#REF!-virhe näkyy, kun kaava viittaa soluun, joka ei ole kelvollinen. Näin käy yleensä silloin, kun soluja, joihin kaavat viittaavat, poistetaan tai niiden päälle liitetään.
Seuraavassa esimerkissä käytetään kaavaa =SUMMA(B2,C2,D2) sarakkeessa E.
Jos poistaisit sarakkeen B, C tai D, se aiheuttaisi #REF! -virheen. Tässä tapauksessa poistamme sarakkeen C (2007 Myynti), ja kaavassa lukee nyt =SUMMA(B2,#REF!,C2). Kun käytät tällaisia eksplisiittisiä soluviittauksia (joissa viittaat kuhunkin soluun yksitellen, pilkulla erotettuna) ja poistat viitatun rivin tai sarakkeen, Excel ei voi ratkaista sitä, joten se palauttaa #REF! -virheen. Tämä on ensisijainen syy siihen, miksi eksplisiittisten soluviittausten käyttämistä funktioissa ei suositella.
Ratkaisu
-
Jos olet vahingossa poistanut rivejä tai sarakkeita, voit heti palauttaa ne valitsemalla Kumoa-painikkeen pikatyökalurivillä (tai painamalla näppäinyhdistelmää CTRL+Z).
-
Muokkaa kaavaa niin, että se käyttää alueviittausta yksittäisten solujen asemesta: =SUMMA(B2:D2). Nyt voit poistaa minkä tahansa sarakkeen summa-alueelta: Excel muokkaa kaavaa automaattisesti. Voit käyttää rivien summaan myös kaavaa =SUMMA(B2:B5).
Seuraavassa esimerkissä =PHAKU(A8,A2:D5,5,FALSE) palauttaa #VIITTAUS!-virheen, koska se etsii palautettavaa arvoa 5. sarakkeesta, mutta viittausalue on vain neljä saraketta: A:D.
Ratkaisu
Säädä aluetta suuremmaksi tai pienennä sarakkeen hakuarvoa viitealueen mukaan. =PHAKU(A8,A2:E5,5,FALSE) olisi kelvollinen viittausalue, samoin =PHAKU(A8,A2:D5,4,FALSE).
Tässä esimerkissä kaava =INDEKSI(B2:E5,5,5) palauttaa #REF! -virhe, koska INDEKSI-alue on 4 riviä ja 4 saraketta, mutta kaava pyytää palauttamaan sen, mitä on 5. rivillä ja 5. sarakkeessa.
Ratkaisu
Muokkaa rivi- tai sarakeviittauksia siten, että ne ovat INDEKSI-hakualueella. =INDEKSI(B2:E5,4,4) palauttaisi kelvollisen tuloksen.
Seuraavassa esimerkissä EPÄSUORA-funktio yrittää viitata suljettuun työkirjaan, mikä aiheuttaa #REF! -virheen.
Ratkaisu
Avaa viitattu työkirja. Sama virhe ilmenee, jos viittaat suljettuun työkirjaan dynaamisella matriisifunktiolla.
Jäsennettyjä viittauksia linkitettyjen työkirjojen taulukoiden ja sarakkeiden nimiin ei tueta.
Laskettuja viittauksia linkitettyihin työkirjoihin ei tueta.
Solujen siirtäminen tai poistaminen aiheutti virheellisen soluviittauksen, tai funktio palauttaa viittausvirheen.
Jos olet käyttänyt OLE (Object Linking and Embedding) -linkkiä, joka palauttaa #REF! ja käynnistä sitten ohjelma, johon linkki soittaa.
Huomautus: OLE on tekniikka, jolla voit jakaa tietoja ohjelmien välillä.
Jos olet käyttänyt DDE (Dynamic Data Exchange) -aihetta, joka palauttaa #REF! -virhe, tarkista ensin, että viittaat oikeaan aiheeseen. Jos saat edelleen #REF! -virhe, tarkista ulkoisen sisällön valvontakeskuksen asetukset kohdassa Ulkoisen sisällön estäminen tai eston poistaminen Microsoft 365 -asiakirjoissa kuvatulla tavalla.
Huomautus: Dynaaminen tiedonsiirto (DDE)on yleisesti käytetty tiedonsiirtoprotokolla Microsoft Windows -ohjelmien välillä.
Makro-ongelmat
Jos makro lisää laskentataulukkoon funktion, joka viittaa funktion yläpuolella olevaan soluun, ja funktion sisältävä solu on rivillä 1, funktio palauttaa #REF! koska rivin 1 yläpuolella ei ole soluja. Tarkista funktiosta, viittaako argumentti soluun tai solualueeseen, joka ei ole kelvollinen. Tämä voi edellyttää makron muokkaamista Visual Basic Editorissa (VBE), jotta tilanne voidaan ottaa huomioon.
Tarvitsetko lisätietoja?
Voit aina kysyä neuvoa Excel Tech Community -yhteisön asiantuntijalta tai saada tukea tukiyhteisöltä.
Katso myös
Viallisten kaavojen ratkaiseminen
Kaavoissa esiintyvien virheiden etsiminen