Viallisten kaavojen ratkaiseminen

Jos Excel ei voi ratkaista kaavaa, jota yrität luoda, näkyviin voi tulla seuraavanlainen virheviesti:

Excelin "Ongelma tässä kaavassa" -valintaikkuna

Tämä tarkoittaa valitettavasti sitä, että Excel ei ymmärrä, mitä yrität tehdä. Sinun on päivitettävä kaava tai varmistettava, että käytät funktiota oikein. 

Vihje: Joissakin yleisissä funktioissa voi ilmetä ongelmia. Lisätietoja on kohdissa LASKE.JOS, SUMMA.JOS, PHAKU tai JOS. Näet myös luettelon funktioista täällä.

Palaa takaisin soluun, jossa on rikkoutunut kaava. Se on muokkaustilassa, ja Excel korostaa ongelmallisen kohdan. Jos et vieläkään tiedä, mitä tehdä ja haluat aloittaa alusta, paina ESC-näppäintä uudelleen tai valitse Peruuta-painike kaavapalkissa, jolloin poistut muokkaustilasta.

Kaava-palkin Peruuta-painikkeen kuva

Jos haluat jatkaa, voit seuraavan tarkistusluettelon vianmääritysvaiheiden avulla selvittää, mikä on ehkä mennyt pieleen. Saat lisätietoja valitsemalla otsikot.

Huomautus: Jos käytät Microsoft 365:n verkkoversioa, et ehkä näe samoja virheitä tai ratkaisut eivät ehkä ole sovellettavissa.

Kaavoissa, joissa on useampi kuin yksi argumentti, erotetaan argumentit luetteloerottimilla. Käytettävä erotin voi vaihdella käyttöjärjestelmän aluekohtaisten asetusten ja Excel-asetusten mukaan. Yleisimmät luetteloerottimet ovat pilkku "," ja puolipiste ";".

Kaava katkeaa, jos jossakin sen funktioista käytetään virheellisiä erottimia.

Lisätietoja on seuraavassa artikkelissa: Kaavavirheitä Excelissä, kun luetteloerotinta ei ole määritetty oikein 

Excel näyttää ristikkomerkillä (#) useita eri virheitä, kuten #ARVO!, #VIITTAUS!, #LUKU, #PUUTTUU, #JAKO/0!, #NIMI? ja #TYHJÄ!, osoittamaan, että jokin kaavassa ei toimi oikein. Esimerkiksi #ARVO! -virhe johtuu virheellisestä muotoilusta tai argumenttien sisältämistä tietotyypeistä, joita ei tueta. Voit myös nähdä #VIITTAUS! -virheen, jos kaava viittaa soluihin, jotka on poistettu tai joiden tiedot on korvattu muilla tiedoilla. Vianmäärityksen ohjeet vaihtelevat kunkin virheen osalta.

Huomautus: #### ei ole kaavoihin liittyvä virhe. Se tarkoittaa vain sitä, että sarake ei ole tarpeeksi leveä solun sisällön näyttämiseen. Levennä saraketta vetämällä sitä, tai valitse Aloitus > Muotoile > Sovita sarakkeen leveys.

Kuva Aloitus > Muotoile > Sovita sarakkeen leveys

Saat lisätietoja näkemästäsi ristikkomerkkivirheestä seuraavista aiheista:

Aina kun avaat laskentataulukon, joka sisältää muiden laskentataulukoiden arvoihin viittaavia kaavoja, sinua pyydetään päivittämään viittaukset tai jättämään ne entiselleen.

Rikkoutuneen viittaukset -valintaikkuna Excelissä

Excel näyttää yllä näkyvän valintaikkunan sen varmistamiseksi, että nykyisen laskentataulukon kaavat viittaavat aina eniten päivitettyyn arvoon siltä varalta, että viittauksen arvo on muuttunut. Voit päivittää viittaukset tai ohittaa, jos et halua päivittää. Vaikka et päivittäisi viittauksia, voit aina päivittää laskentataulukon linkit manuaalisesti milloin tahansa.

Voit aina poistaa valintaikkunan näkymisen käynnistyksen yhteydessä. Voit tehdä tämän valitsemalla Tiedosto > Asetukset > Lisäasetukset > Yleiset ja tyhjentämällä sitten Ehdota automaattisten linkkien päivitystä -ruudun.

Ask-kuva automaattisen linkkiasetuksen päivittämiseksi

Tärkeää: Jos käsittelet kaavojen katkenneita linkkejä ensimmäistä kertaa, et muista, miten katkenneet linkit korjataan tai et ole varma, haluatko päivittää viittaukset, lue artikkeli Ulkoisten viittausten (linkkien) päivitysajankohdan valvominen.

Ellei kaava näytä arvoa, toimi seuraavasti:

  • Varmista, että Excel on määritetty näyttämään laskentataulukon kaavat. Valitse Kaavat-välilehden Kaavan tarkistaminen -ryhmässä Näytä kaavat.

    Vihje: Voit myös käyttää pikanäppäintä Ctrl + ` (sarkaimen yläpuolella oleva näppäin). Kun teet näin, sarakkeet levennetään automaattisesti näyttämään kaavat. Kun palaat takaisin normaalinäkymään, sarakkeet palautetaan entiseen kokoonsa.

  • Jos et pysty ratkaisemaan ongelmaa yllä olevan vaiheen avulla, solu on muotoiltu ehkä tekstiksi. Voit napsauttaa hiiren kakkospainikkeella solua ja valita Muotoile solut > Yleiset (tai Ctrl + 1), ja muuttaa muotoa painamalla sitten F2 > Enter.

  • Jos sarakkeessa on suuri alue soluja, jotka on muotoiltu tekstiksi, valitse alue, käytä haluamaasi lukumuotoa ja siirry kohtaan Tiedot > Sarakkeen teksti > Valmis. Muotoa käytetään kaikissa valituissa soluissa.

    Tiedot > Teksti sarakkeisiin -valintaikkunan kuva

Kun kaava ei suorita laskutoimituksia, sinun on tarkistettava, onko automaattinen laskenta käytössä Excelissä. Kaavat eivät toimi, jos manuaalinen laskenta on otettu käyttöön. Tarkista automaattinen laskenta seuraavien vaiheiden avulla.

  1. Valitse Tiedosto-välilehti, Asetukset ja sitten Kaavat-luokka.

  2. Varmista Laskennan asetukset -osan Työkirjan laskentatila -kohdassa, että Automaattinen on valittuna.

    Automaattisen ja manuaalisen laskennan asetukset -kuva

Katso lisätietoja laskutoimituksista artikkelista Kaavan uudelleenlaskennan, iteraation tai tarkkuuden muuttaminen.

Kehäviittaus tapahtuu, kun kaava viittaa samaan soluun, jossa se sijaitsee. Voit korjata tämän joko siirtämällä kaavan toiseen soluun tai muuttamalla kaavan syntaksin sellaiseksi, että se välttää kehäviittauksia. Joissain tapauksissa saatat kuitenkin tarvita kehäviittauksia, koska niiden ansiosta kaavojasi toistetaan, kunnes tietty lukuehto saavutetaan. Tällaisissa tapauksissa sinun on otettava käyttöön asetus Poista tai salli kehäviittaus.

Lisätietoja kehäviittauksista on artikkelissa Kehäviittauksen poistaminen tai salliminen.

Jos merkinnän alussa ei ole yhtäläisyysmerkkiä, se ei ole kaava, eikä sitä lasketa — tämä on tavallinen virhe.

Kun kirjoitat esimerkiksi SUMMA(A1:A10), Excel näyttää tekstimerkkijonon SUMMA(A1:A10) kaavan tuloksen sijaan. Jos taas kirjoitat 11/2, Excel näyttää jakolaskun suorittamisen sijasta päivämäärän, kuten 2.11. tai 2.11.2009.

Voit välttää odottamattomat tulokset aloittamalla funktion aina yhtäläisyysmerkillä. Kirjoita esimerkiksi: =SUMMA(A1:A10 ja =11/2.

Kun kaavassa käytetään funktiota, jokaisen alkusulkeen jälkeen täytyy tulla loppusulje, jotta kaava toimii oikein. Varmista, että kaikki sulkeet muodostavat parin. Esimerkiksi kaava =JOS(B5<0),"Ei kelpaa",B5*1.05) ei toimi, koska loppusulkeita on kaksi, mutta alkusulkeita on vain yksi. Oikea kaava näyttää tältä: =JOS(B5<0;"Ei kelpaa";B5*1,05).

Excel-funktioilla on argumentteja, eli arvoja, jotka sinun on annettava, jotta funktio toimii. Vain muutamat funktiot (kuten PII tai TÄMÄ.PÄIVÄ) eivät hyväksy argumentteja. Tarkista kaavasyntaksi, joka tulee näkyviin, kun alat kirjoittaa funktiota ja varmista, että funktiolla on tarvittavat argumentit.

Esimerkiksi ISOT-funktiossa voi käyttää vain yhtä tekstimerkkijonoa tai soluviittausta argumenttina: =ISOT("hei") tai =ISOT(C2)

Huomautus: Kun kirjoitat kaavaa, funktion argumentit näkyvät irrallisessa Funktioviittaus-työkalurivissä kaavan alla.

Näyttökuva Funktioviittaus-työkalurivistä

Jotkin funktiot, kuten SUMMA, edellyttävät vain numeerisia argumentteja. Toiset funktiot, kuten KORVAA, puolestaan edellyttävät ainakin yhden argumentin tekstiarvon. Jos käytät väärää tietotyyppiä, funktiot voivat palauttaa odottamattomia tuloksia tai näyttää #ARVO!-virheen.

Jos haluat pikaisesti tarkistaa tietyn funktion syntaksin, tutustu Excelin funktiot (luokittain) -luetteloon.

Älä käytä kaavojen luvuissa dollarimerkkiä ($) tai pilkkua tuhaterottimena, koska dollarimerkeillä osoitetaan suorat viittaukset eivätkä pilkut toimi suomenkielisessä Excelissä. Kirjoita kaavaan arvon $1000 sijaan 1000.

Jos käytät argumenteissa muotoiltuja lukuja, saat odottamattomia laskutuloksia tai #LUKU!-virheen. Jos esimerkiksi haluat määrittää luvun -2134 itseisarvon ja kirjoitat kaavan =ITSEISARVO(-2,134) käyttämällä pilkkua tuhaterottimena, Excel näyttää #LUKU! -virheen, koska ITSEISARVO-funktio hyväksyy vain yhden argumentin. Se tulkitsee argumentit -2, ja 134 erillisinä argumentteina.

Huomautus: Voit muotoilla kaavan tulosta desimaalierottimilla ja valuutan symboleilla sen jälkeen, kun olet syöttänyt kaavan muotoilemattomilla luvuilla (vakiot). Kaavoihin ei yleensä kannata sijoittaa vakioita, koska niitä voi olla vaikea löytää, jos haluat päivittää myöhemmin. Vakioiden kirjoittamisessa voi lisäksi sattua virheitä. On paljon parempi sijoittaa vakiot soluihin, jolloin ne on helppo löytää ja niihin on helppo tehdä viittauksia.

Kaava ei välttämättä palauta odotettuja tuloksia, jos solun tietotyyppi ei sovellu laskutoimituksiin. Jos esimerkiksi syötät tekstiksi muokattuun soluun kaavan =2+3, Excel ei voi laskea kaavan tietoja. Solussa näkyy vain =2+3. Voit korjata tämän vaihtamalla solun Teksti-tietotyypin Yleiset-tietotyypiksi näin:

  1. Valitse solu.

  2. Valitse Aloitus ja laajenna Luku- tai Lukumuotoilu-ryhmä valitsemalla nuoli (tai painamalla näppäinyhdistelmää CTRL + 1). Valitse sitten Yleiset.

  3. Aseta solu muokkaustilaan painamalla F2-näppäintä ja hyväksy sitten kaava painamalla Enter-näppäintä.

Luku-tietotyypin mukaiseen soluun syötetty päivämäärä voidaan näyttää numeerisena päivämääräarvona päivämäärän sijaan. Jos haluat näyttää luvun päivämääränä, valitse Lukumuotoilu-valikoimassa Päivämäärä-muoto.

On aika yleistä, että kaavan kertolaskuoperaattorina käytetään x-merkkiä, mutta Excel hyväksyy ainoastaan asteriskin (*) kertolaskuissa. Jos käytät kaavassa vakioita, Excel näyttää virheviestin ja voi korjata kirjoittamasi kaavan korvaamalla x-merkin asteriskilla (*).

Viestiruutu, jossa pyydetään korvaamaan x-merkki *-merkillä kertolaskua varten

Jos kuitenkin käytät soluviittauksia, Excel palauttaa #NIMI? -virhearvon.

#NIMI? -virhe, joka näkyy, kun soluviittauksissa käytetään x-merkkiä *-merkin sijaan kertolaskua varten

Jos luot kaavan, jossa on tekstiä, kirjoita teksti lainausmerkkien sisään.

Esimerkiksi kaava ="Tänään on " & TEKSTI(TÄMÄ.PÄIVÄ();"pppp, p.k.") yhdistää "Tänään on " -tekstin TEKSTI- ja TÄMÄ.PÄIVÄ-funktioiden tuloksiin ja palauttaa soluun esimerkiksi tekstin Tänään on maanantai, 30.5..

Kaavassa "Tänään on " on välilyönti ennen loppulainausmerkkiä. Tämän ansiosta sanojen "Tänään on" ja "maanantai, 30.5." välissä on välilyönti..

Voit käyttää kaavassa sisäkkäisiä funktioita enintään 64 tasolla.

Esimerkiksi kaavassa =JOS(NELIÖJUURI(PII())<2;"Vähemmän kuin kaksi!";"Enemmän kuin kaksi!") on kolme funktiotasoa: PII-funktio sisältyy NELIÖJUURI-funktioon, joka puolestaan sisältyy JOS-funktioon.

Jos kaava viittaa toisen laskentataulukon arvoihin tai soluihin ja taulukon nimessä on jokin aakkosiin kuulumaton merkki, kuten välilyönti, nimi on kirjoitettava puolilainausmerkkeihin (').

Jos esimerkiksi haluat palauttaa arvon työkirjan Neljännesvuoden tiedot -laskentataulukon solusta D3, kirjoita: ='Neljännesvuoden tiedot'!D3. Jos taulukon nimen ympärillä ei ole lainausmerkkejä, kaava näyttää #NIMI?-virheen.

Voit viitata kaavassasi toisen taulukon arvoihin tai soluihin myös valitsemalla haluamasi arvon tai solun. Tällöin Excel lisää automaattisesti puolilainausmerkit taulukon nimen ympärille.

Jos kaava viittaa toisen työkirjan arvoihin tai soluihin, työkirjan nimi on kirjoitettava hakasulkeisiin ([]) ja sen perään on lisättävä kyseiset arvot tai solut sisältävän taulukon nimi.

Jos esimerkiksi haluat viitata Excelissä avoinna olevan Toisen vuosineljänneksen toiminnot -työkirjan Myynti-taulukon soluihin A1–A8, käytä seuraavaa kaavaa: =[Toisen vuosineljänneksen toiminnot.xlsx]Myynti!A1:A8. Ilman hakasulkeita kaava näyttää #VIITTAUS!-virheen.

Jos työkirja ei ole avoinna Excelissä, kirjoita tiedoston täydellinen polku.

Esimerkiksi: =RIVIT('C:\Omat tiedostot\[Toisen vuosineljänneksen toiminnot.xlsx]Myynti'!A1:A8).

Huomautus: Jos täydellisessä polussa on välilyöntejä, polku on kirjoitettava puolilainausmerkkeihin, jotka sijoitetaan polun alkuun ja laskentataulukon nimen jälkeen ennen huutomerkkiä.

Vihje: Saat polun toiseen työkirjaan helpoiten avaamalla toisen työkirjan, kirjoittamalla alkuperäisessä työkirjassa = ja siirtymällä sitten toiseen työkirjaan Alt + sarkain -näppäinyhdistelmällä. Valitse haluamasi taulukon solu ja sulje sitten lähdetyökirja. Kaavasi päivitetään automaattisesti niin, että siinä näkyy koko tiedostopolku ja taulukon nimi tarvittavan syntaksin ohella. Voit myös kopioida ja liittää polun ja käyttää sitä aina, kun sitä tarvitset.

Jos solu jaetaan toisella solulla, jossa on arvo nolla tai ei mitään arvoa, tuloksena on #JAKO/0! ‑virhe.

Voit välttää tämän virheen korjaamalla sen suoraan ja testaamalla, onko olemassa nimittäjä. Voit käyttää seuraavaa: 

=JOS(B1,A1/B1,0)

Tämä tarkoittaa JOS(B1 on olemassa, jaa A1 B1:lle, muussa tapauksessa palauta 0).

Ennen kuin poistat mitään soluihin, alueisiin, määritettyihin nimiin, laskentataulukoihin tai työkirjoihin sisältyviä tietoja, tarkista, ettei niihin ole viitattu kaavoissa. Tarvittaessa voit korvata kaavat niiden tuloksilla, ennen kuin poistat tiedot, joihin kaavoissa on viitattu.

Jos et voi korvata kaavoja tuloksilla, tutustu seuraaviin virheitä ja niiden mahdollisia korjaamistapoja koskeviin ohjeisiin:

  • Jos kaava viittaa soluihin, jotka on poistettu tai korvattu muilla tiedoilla ja saat #VIITTAUS!-virheen, valitse solu, joka sisältää #VIITTAUS! -virhearvon. Valitse kaavarivillä #VIITTAUS! ja poista se. Kirjoita sitten kaavan alue uudelleen.

  • Jos määritetty nimi puuttuu ja siihen viittaava kaava palauttaa #NIMI? ‑virheen, määritä uusi nimi, joka viittaa haluamaasi alueeseen, tai muuta kaavaa siten, että se viittaa suoraan solualueeseen (esimerkiksi A2:D8).

  • Jos laskentataulukko puuttuu ja siihen viittaava kaava palauttaa #VIITTAUS!-virheen, virhettä ei voi korjata. Poistettua laskentataulukkoa ei voi palauttaa.

  • Jos työkirja puuttuu, siihen viittaava kaava säilyy muuttumattomana, kunnes päivität kaavan.

    Esimerkiksi, jos kirjoitat kaavan =[Työkirja1.xlsx]Taul1'!A1 eikä sinulla ole enää tiedostoa nimeltä Työkirja1.xlsx, tästä työkirjasta peräisin olevat arvot pysyvät edelleen käytettävissä. Jos kuitenkin muokkaat kyseiseen työkirjaan viittaavaa kaavaa ja tallennat sen, Excel näyttää Päivitä arvot ‑valintaikkunan ja pyytää lisäämään tiedostonimen. Valitse Peruuta ja korvaa sitten puuttuvaan työkirjaan viittaavat kaavat niiden tuloksilla varmistaaksesi, ettei tietoja katoa.

Joskus solun sisältöä kopioidessasi voit haluta liittää vain arvon, mutta et kohteessa kaavarivi näkyvää, tietojen perustana olevaa kaavaa.

Saatat esimerkiksi haluta kopioida kaavan tuloksena saatavan arvon jonkin toisen laskentataulukon soluun. Voit myös haluta poistaa kaavassa käyttämäsi arvot sen jälkeen, kun olet kopioinut tuloksena saatavan arvon toiseen saman laskentataulukon soluun. Molemmat toiminnot aiheuttavat virheellisen soluviittausvirheen (#VIITTAUS!) näkymisen kohdesolussa, koska soluihin, jotka sisältävät kaavassa käytetyt arvot, ei voi enää viitata.

Voit välttää tämän virheen liittämällä vain kaavojen tuloksena saatavat arvot kohdesoluihin ja jättämällä kaavan liittämättä.

  1. Valitse laskentataulukossa solut, jotka sisältävät kopioitavat kaavan tulosarvot.

  2. Valitse Aloitus-välilehden Leikepöytä-ryhmässä Kopioi Painikkeen kuva.

    Excelin valintanauhan kuva

    Pikanäppäin: Paina näppäinyhdistelmää CTRL+C.

  3. Valitse kohdealue vasen yläsolu.

    Vihje: Jos haluat siirtää tai kopioida valinnan eri laskentataulukkoon tai työkirjaan, valitse toisen laskentataulukon välilehti tai siirry toiseen työkirjaan ja valitse sitten kohdealueen vasen yläsolu.

  4. Valitse Aloitus-välilehden Leikepöytä-ryhmässä Liitä Painikkeen kuva ja sitten Liitä arvot tai paina Alt > E > S > V > Enter Windowsissa tai Optio > Komento > V > V > Enter Macissa.

Selvittääksesi, miten monimutkainen tai sisäkkäisiä osia sisältävä kaava laskee lopputuloksen, voit laskea kyseisen kaavan.

  1. Valitse laskettava kaava.

  2. Valitse Kaavat > Laske kaava.

    Kaava-välilehden Kaavan tarkistaminen -ryhmä

  3. Tarkista alleviivatun viittauksen arvo valitsemalla Laske. Laskennan tulos näkyy kursivoituna.

    Kaavan laskeminen -valintaikkuna

  4. Jos kaavan alleviivattu osa on viittaus toiseen kaavaan, valitsemalla Suorita rivi voit näyttää toisen kaavan Laskenta-ruudussa. Voit palata takaisin edelliseen soluun ja kaavaan valitsemalla Suorita toimintosarja loppuun.

    Suorita rivi ‑painike ei ole käytettävissä, jos viittaus on kaavassa toiseen kertaan tai jos kaava viittaa jonkin toisen työkirjan soluun.

  5. Jatka, kunnes olet laskenut kaavan jokaisen osan.

    Kaavan laskenta -työkalu ei välttämättä kerro, miksi kaava ei toimi, mutta se voi auttaa näyttämään virheen sijainnin. Tämä voi olla erittäin hyödyllinen työkalu suuremmissa kaavoissa, joissa ongelmaa voi olla muutoin hankala löytää.

    Huomautukset: 

    • Joitakin osia JOS- ja VALITSE-funktioista ei lasketa, ja Laskenta-ruutuun saattaa tulla #PUUTTUU!-virhe.

    • Jos viittaus on tyhjä, Laskenta-ruudussa näkyy nolla-arvo (0).

    • Jotkut funktiot lasketaan uudelleen aina, kun laskentataulukkoon tehdään muutoksia. Nämä funktiot, joita ovat esimerkiksi SATUNNAISLUKU, ALUEET, INDEKSI, SIIRTYMÄ, SOLU, EPÄSUORA, RIVIT, SARAKKET, NYT, TÄMÄ PÄIVÄ ja SATUNNAISLUKU.VÄLILTÄ, voivat näyttää Kaavan laskeminen ‑valintaikkunassa tuloksia, jotka poikkeavat laskentataulukon solussa näkyvistä todellisista tuloksista.

Tarvitsetko lisätietoja?

Voit aina kysyä neuvoa Excel Tech Community -yhteisön asiantuntijalta tai saada tukea tukiyhteisöltä.

Vihje: Jos olet pienyrityksen omistaja ja haluat lisätietoja Microsoft 365:n määrittämisestä, tutustu Pienyritysten ohjeeseen.

Katso myös

Yleiskuva kaavoista Excelissä

Excelin ohje ja koulutus

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.