Matriisikaava on kaava, joka voi suorittaa useita laskelmia yhdelle tai useammalle matriisin kohteelle. Voit ajatella matriisia arvot sisältävänä rivinä tai sarakkeena tai arvoja sisältävien sarakkeiden ja rivien yhdistelmänä. Matriisikaavat voivat palauttaa joko useita tuloksia tai yhden tuloksen.
Syyskuun 2018 Microsoft 365 -päivityksestä alkaen kaikki kaavat, jotka voivat palauttaa useita tuloksia, levittyvät automaattisesti joko alas tai viereisiin soluihin. Tähän toiminnan muutokseen liittyy myös useita uusia dynaamisia matriisifunktioita. Dynaamiset matriisikaavat, käyttävätpä ne sitten aiemmin luotuja funktioita tai dynaamisia matriisifunktioita, on syötettävä vain yhteen soluun, ja sitten vahvistettava painamalla Enter-näppäintä. Aiemmat vanhat matriisikaavat edellyttävät ensin koko tulosalueen valitsemista ja sitten kaavan vahvistamista painamalla Ctrl+Vaihto+Enter. Niitä kutsutaan yleisesti CSE-kaavoiksi.
Voit käyttää matriisikaavoja monimutkaisten tehtävien suorittamiseen, esimerkiksi:
- Mallitietojoukkojen luominen nopeasti.
- Solualueen sisältämien merkkimäärien laskeminen.
- Tiettyjen ehtojen mukaisten lukujen yhteenlaskeminen (esimerkiksi alueen alimmat arvot tai ylä- ja alarajan väliset luvut).
- Arvoalueen joka N:nnen arvon yhteenlaskeminen.
Seuraavissa esimerkeissä näytetään, miten voit luoda monisoluisia ja yksisoluisia matriisikaavoja. Mahdollisuuksien mukaan olemme sisällyttäneet esimerkkejä, joissa on dynaamisia matriisifunktioita sekä aiemmin lisättyjä matriisikaavoja sekä dynaamisina että vanhoina matriiseina.
Lataa Microsoftin esimerkkejä
Lataa esimerkkityökirja, jossa on kaikki tämän artikkelin matriisikaavan esimerkit.
Monisoluiset ja yksisoluiset matriisit
Tässä harjoituksessa näet, miten voit käyttää monisoluisia ja yksisoluisia matriisikaavoja myyntilukujen laskemiseen. Ensimmäisessä vaiheessa käytetään monisoluista kaavaa välisummien laskemiseen. Toisessa vaiheessa käytetään yksisoluista kaavaa loppusumman laskemiseen.
Monisoluinen matriisikaava
Tässä laskemme coupe- ja sedan-mallisten autojen kokonaismyynnin kullekin myyjälle kirjoittamalla soluun H10 =F10:F19*G10:G19.
Kun painat Enter, näet tulosten levittyvän alas soluihin H10:H19. Huomaa, että levittymisalue näkyy korostettuna reunaviivalla, kun valitset minkä tahansa solun levittymisalueelta. Saatat myös huomata, että solujen H10:H19 kaavat näkyvät harmaina. Ne ovat vain viitteenä, joten jos haluat säätää kaavaa, sinun on valittava solu H10, jossa peruskaava sijaitsee.Yksisoluinen matriisikaava
Kirjoita tai kopioi ja liitä esimerkkityökirjan soluun H20 =SUMMA(F10:F19*G10:G19) ja paina sitten Enter.
Tässä tapauksessa Excel kertoo matriisin arvot (solualue F10-G19) ja käyttää SUMMA-funktiota summien yhteenlaskemiseen. Kokonaismyynnin tulos on 1 590 000 dollaria.
Tämä esimerkki osoittaa, miten tehokas matriisikaava voi olla. Oletetaan esimerkiksi, että taulukossa on 1 000 riviä tietoja. Voit laskea yhteen osan tiedoista tai kaikki tiedot luomalla yksisoluisen matriisikaavan sen sijaan, että vetäisit kaavan kaikkiin 1 000 riviin. Huomaa myös, että yksisoluinen kaava solussa H20 on täysin riippumaton monisoluisesta kaavasta (kaava soluissa H10–H19). Tämä joustavuus on yksi matriisikaavojen käytön eduista. Voit muuttaa sarakkeen H muita kaavoja vaikuttamatta kaavaan H20:ssä. Voi myös olla hyvä käytäntö, että sinulla on tällaisia itsenäisiä yhteissummia, sillä se auttaa varmistamaan tulosten tarkkuuden.Muita dynaamisten matriisikaavojen etuja ovat:
- Johdonmukaisuus Jos napsautat jotakin solua solusta H10 alaspäin, näet saman kaavan. Yhdenmukaisuus auttaa varmistamaan tietojen tarkkuuden.
- Turvallisuus Et voi korvata monisoluisen matriisikaavan osaa. Napsauta esimerkiksi solua H11 ja paina Poista. Excel ei muuta matriisin tulosta. Jos haluat muuttaa sitä, sinun on valittava taulukon vasemmassa yläkulmassa oleva solu tai solu H10.
- Pienemmät tiedostokoot Voit usein käyttää yhtä matriisikaavaa useiden välikaavojen sijaan. Esimerkiksi autokaupan esimerkissä lasketaan tulokset sarakkeessa E yhdellä matriisikaavalla. Jos olisit käyttänyt vakiokaavoja (kuten =F10*G10, F11*G11, F12*G12 jne.), olisit käyttänyt 11 erilaista kaavaa samojen tulosten laskemiseen. Se ei ole iso juttu, mutta entä jos sinulla olisi tuhansia yhteenlaskettavia rivejä? Silloin sillä voi olla suuri merkitys.
- Tehokkuutta Matriisifunktiot voivat olla tehokas tapa luoda monimutkaisia kaavoja. Matriisikaava =SUMMA(F10:F19*G10:G19) on sama kuin tämä: =SUMMA(F10*G10,F11*G11,F12*G12,F13*G13,F14*G14,F15*G15,F16*G16,F17*G17,F18*G18,F19*G19).
- Valuu Dynaamiset matriisikaavat levittyvät automaattisesti tulostusalueelle. Jos lähdetiedot ovat Excel-taulukossa, dynaamiset matriisikaavat muuttavat kokoa automaattisesti, kun lisäät tai poistat tietoja.
- #LEVITTYMINEN! -virheen korjaaminen Dynaamiset matriisit toivat #SPILL!-virheen, joka ilmaisee, että aiottu levitysalue on jostain syystä estetty. Kun poistat eston, kaava levittyy automaattisesti.
Yksi- ja kaksiulotteisen matriisivakion luominen
Taulukon vakiot ovat osa matriisikaavoja. Matriisivakioita voi luoda määrittämällä kohdeluettelo ja lisäämällä luettelon ympärille aaltosulkeet ({ }), esimerkiksi näin:
={1,2,3,4,5} tai ={"Tammikuu","Helmikuu","Maaliskuu"}
Jos erotat kohteet toisistaan pilkkujen avulla, luot vaakasuuntaisen matriisin (rivi). Jos erotat kohteet toisistaan puolipisteiden avulla, luot pystysuuntaisen matriisin (sarake). Jos haluat luoda kaksiulotteisen matriisin, erota kunkin rivin kohteet toisistaan pilkuilla ja erota rivit toisistaan puolipisteillä.
Seuraavien toimien avulla voit harjoitella vaaka- ja pystysuuntaisten sekä kaksiulotteisten vakioiden luomista. Näytämme esimerkkejä, joissa käytetään SEQUENCE-funktiota matriisivakioiden luomiseen automaattisesti sekä manuaalisesti kirjoitettuja matriisivakioita.
-
Vaakasuuntaisen vakion luominen
Käytä edellisessä kohdassa käytettyä työkirjaa tai avaa uusi työkirja. Valitse mikä tahansa tyhjä solu ja kirjoita =JONO(1,5). JONO-funktio muodostaa 1 rivin ja 5 sarakematriisin samalla tavalla kuin ={1,2,3,4,5}. Näet seuraavat tulokset:
-
Pystysuuntaisen vakion luominen
Valitse mikä tahansa tyhjä solu, jonka alapuolella on tilaa, ja kirjoita =JONO(5) tai ={1;2;3;4;5}. Näet seuraavat tulokset:
-
Kaksiulotteisen vakion luominen
Valitse mikä tahansa tyhjä solu, jonka oikealla ja alapuolella on tilaa, ja kirjoita =JONO(3,4). Näet seuraavat tulokset:
Voit myös kirjoittaa: tai ={1\2\3\4;5\6\7\8;9\10\11\12}, mutta kiinnitä huomiota kohtaan, johon laitat puolipisteet pilkkujen sijaan.
Kuten näet, JONO-vaihtoehto tarjoaa merkittäviä etuja matriisivakioarvojen manuaaliseen syöttämiseen verrattuna. Ensisijaisesti se säästää aikaa, mutta se voi myös auttaa vähentämään manuaalisen syöttämisen virheitä. Se on myös helpompi lukea, etenkin kun puolipisteitä voi olla vaikea erottaa pilkuista.
Matriisivakion syntaksi
Seuraavassa esimerkissä käytetään matriisivakioita osana suurempaa kaavaa. Siirry mallityökirjassa kaavataulukon Vakio-kohtaan tai luo uusi laskentataulukko.
Kirjoitimme soluun D9 =JONO(1,5,3,1), mutta voit kirjoittaa soluihin A9:H9 myös 3, 4, 5, 6 ja 7. Tässä numerovalinnassa ei ole mitään erityistä. Valitsimme vain välillä jonkin muun kuin 1-5.
Kirjoita soluun E11 =SUMMA(D9:H9*JONO(1,5))tai =SUMMA(D9:H9*{1,2,3,4,5}). Kaavat palauttavat arvon 85.
JONO-funktio muodostaa matriisivakion {1,2,3,4,5}vastineen . Koska Excel suorittaa ensin sulkeissa olevat lausekkeet, seuraavat kaksi osaa ovat solujen arvot kohdassa D9:H9 sekä kerroinoperaattori (*). Tässä vaiheessa kaava kertoo tallennetun matriisin arvot vakion vastaavilla arvoilla. Tämä vaihe vastaa kaavaa:
=SUMMA(D9*1,E9*2,F9*3,G9*4,H9*5) tai =SUMMA(3*1,4*2,5*3,6*4,7*5)
Lopuksi SUMMA-funktio lisää arvot ja palauttaa 85.
Voit välttää tallennetun matriisin käyttämisen ja säilyttää operaattorin muistissa korvaamalla sen toisella matriisivakiolla:
=SUMMA(JONO(1;5;3;1)*JONO(1,5))) tai =SUMMA({3,4,5,6,7}*{1,2,3,4,5})
Matriisivakioissa käytettävät osat
- Matriisivakiot voivat sisältää numeroita, tekstiä, totuusarvoja (kuten TOSI ja EPÄTOSI) ja virhearvoja, kuten #N/A. Voit käyttää lukuja kokonaisluku-, desimaali- ja tieteellisissä muodoissa. Jos käytät vakiossa tekstiä, sen ympärille on lisättävä lainausmerkit (“teksti”).
- Matriisivakiot eivät voi sisältää muita matriiseja, kaavoja tai funktioita. Toisin sanoen ne voivat sisältää vain pilkuilla tai puolipisteillä erotettuja numeroita tai tekstejä. Excel näyttää varoitussanoman, jos kirjoitat esimerkiksi kaavan {1\2\A1:D4} tai {1\2\SUMMA(Q2:Z8)}. Numeeriset arvot eivät voi sisältää prosenttimerkkejä, dollarin merkkejä, pilkkuja tai sulkeita.
Matriisivakioiden nimeäminen
Yksi parhaista tavoista käyttää matriisivakioita on nimetä ne. Nimettyjä vakioita on helppo käyttää, ja niiden avulla matriisikaavoista voidaan tehdä helpommin ymmärrettäviä muille käyttäjille. Voit nimetä matriisivakion ja käyttää sitä kaavassa seuraavalla tavalla:
Siirry kohtaan Kaavat Määritetyt>nimet>Määritä nimi. Kirjoita Nimi-ruutuun Neljännes1. Kirjoita Viittaa-ruutuun seuraava vakio (muista lisätä aaltosulkeet):
={"tammikuu"\"helmikuu"\"maaliskuu"}
Valintaikkunan pitäisi nyt näyttää tältä:
Valitse OK, ja valitse sitten mikä tahansa rivi, jossa on kolme tyhjää solua, ja kirjoita =Neljännes1.
Näet seuraavat tulokset:
Jos haluat tulosten levittyvän pystysuunnassa vaakasuuntaisen sijaan, voit käyttää =TRANSPONOI(Vuosineljännes1)-funktiota.
Jos haluat näyttää 12 kuukauden luettelon, jollaista saatat käyttää laatiessasi talousraporttia, voit luoda JONO-funktiolla sellaisen kuluvasta vuodesta. Hienoa tässä funktiossa on se, että vaikka vain kuukausi on näkyvissä, sen takana on kelvollinen päivämäärä, jota voit käyttää muissa laskutoimituksissa. Nämä esimerkit ovat esimerkkityökirjan Nimetty matriisivakio - ja Pikaesimerkkitietojoukko-laskentataulukoissa .
=TEKSTI(PÄIVÄYS(VUOSI(TÄMÄ.PÄIVÄ()),JONO(1,12),1),"mmm")
Tämä käyttää PÄIVÄYS-funktiota luomaan päivämäärän kuluvan vuoden perusteella, JONO luo matriisivakion 1-12 tammikuusta joulukuuhun ja sitten TEKSTI-funktio muuntaa näyttömuodon muotoon "mmm" (tam, hel, maa jne.). Jos haluat näyttää koko kuukauden nimen, kuten tammikuu, käytä "mmmm".
Kun käytät nimettyä vakiota matriisikaavana, muista lisätä yhtäläisyysmerkki, kuten =Neljännes1, ei ainoastaan Neljännes1. Jos et lisää yhtäläisyysmerkkiä, Excel tulkitsee matriisin tekstimerkkijonoksi eikä kaava toimi odotetulla tavalla. Muista myös, että voit käyttää funktioiden, tekstin ja numeroiden yhdistelmiä. Kaikki riippuu siitä, kuinka luova haluat olla.
Matriisivakioiden käyttäminen
Seuraavissa esimerkeissä esitellään muutamia matriisivakioiden käyttötapoja matriisikaavoissa. Muutamissa esimerkeissä käytetään TRANSPONOI-funktiota, joka muuttaa rivit sarakkeiksi ja päinvastoin.
-
Matriisin kunkin kohteen kertominen
Kirjoita =JONO(1,12)*2 tai ={1\2\3\4;5\6\7\8;9\10\11\12}*2
Voit myös jakaa luvun (/), lisätä funktiolla (+) ja vähentää vähennyslaskulla (-). -
Matriisin kohteiden neliöjuuri
Kirjoita =JONO(1,12)^2 tai ={1\2\3\4;5\6\7\8;9\10\11\12}^2 -
Etsi neliökohteiden neliöjuuri matriisista
Kirjoita =NELIÖJUURI(JONO(1,12)^2)tai =NELIÖJUURI({1,2;3;4; 5,6,7,8; 9,10,11,12}^2) -
Yksiulotteisen rivin transponoiminen
Kirjoita =TRANSPONOI(JONO(1,5))tai =TRANSPONOI({1,2,3,4,5})
Vaikka olet määrittänyt vaakasuuntaisen matriisivakion, TRANSPONOI-funktio muuntaa matriisivakion sarakkeeksi. -
Yksiulotteisen sarakkeen transponoiminen
Kirjoita =TRANSPONOI(JONO(5,1)) tai =TRANSPONOI({1;2;3;4;5})
Vaikka olet määrittänyt pystysuuntaisen matriisivakion, TRANSPONOI-funktio muuntaa matriisivakion riviksi. -
Kaksiulotteisen vakion transponoiminen
Kirjoita =TRANSPONOI(JONO(3,4)) tai =TRANSPONOI({1\2\3\4;5\6\7\8;9\10\11\12})
TRANSPONOI-funktio muuntaa kunkin rivin sarakejoukoksi.
Perusmatriisikaavojen käyttäminen
Tässä osassa on esimerkkejä perusmatriisikaavoista.
Matriisin luominen olemassa olevista arvoista
Seuraavassa esimerkissä kerrotaan, miten matriisikaavojen avulla luodaan uusi matriisi olemassa olevasta matriisista.
Kirjoita =JONO(3,6,10,10) tai ={10\20\30\40\50\60;70\80\90\100\110\120;130\140\150\160\170\180}
Muista kirjoittaa { (aloittava aaltosulje) ennen lukua 10 ja } (päättävä aaltosulje) luvun 180 jälkeen, sillä luot lukumatriisia.
Kirjoita seuraavaksi =D9# tai =D9:I11 tyhjään soluun. Näkyviin tulee 3 x 6 solutaulukko, jossa on samat arvot kuin soluissa D9:D11. #-merkkiä kutsutaan levittyneen alueen operaattoriksi, ja se on Excelin tapa viitata koko matriisialueeseen sen sijaan, että se olisi kirjoitettava.
Matriisivakion luominen olemassa olevista arvoista
Voit ottaa levittyneen matriisikaavan tulokset ja muuntaa ne sen komponenttiosiksi. Valitse solu D9 ja siirry sitten muokkaustilaan painamalla F2. Muunna seuraavaksi soluviittaukset arvoiksi painamalla F9-näppäintä , jonka Excel muuntaa matriisivakioksi. Kun painat Enter, kaavan =D9# pitäisi nyt olla ={10\20\30;40\50\60;70\80\90}.Solualueen merkkimäärän laskeminen
Seuraavassa esimerkissä kerrotaan, miten voit laskea solualueen merkkien määrän. Tämä sisältää välilyönnit.
=SUMMA(PITUUS(C9:C13))
Tässä tapauksessa PITUUS-funktio palauttaa kunkin tekstimerkkijonon pituuden kussakin alueen solussa. SUMMA-funktio laskee arvot yhteen ja näyttää tuloksen (66). Jos haluat saada merkkien keskimääräisen määrän, voit käyttää seuraavia:
=KESKIARVO(PITUUS(C9:C13))Alueen C9:C13 pisimmän solun sisältö
=INDEKSI(C9:C13,VASTINE(MAKS(PITUUS(C9:C13)),PITUUS(C9:C13),0),1)
Tämä kaava toimii vain, kun tietoalue sisältää yhden solusarakkeen.
Tutkitaanpa kaavaa hieman tarkemmin sisimmäisistä osista alkaen. PITUUS-funktio palauttaa kunkin solualueen D2:D6 kohteen pituuden. MAKS-funktio laskee kohteiden suurimman arvon, joka vastaa pisintä merkkijonoa, joka on solussa D3.
Tässä vaiheessa asia muuttuu hieman monimutkaisemmaksi. VASTINE-funktio laskee sen solun siirtymän (suhteellisen sijainnin), joka sisältää pisimmän tekstimerkkijonon. Funktio tarvitsee laskemisessa kolmea argumenttia hakuarvo, hakumatriisi sekä vastinetyyppi. VASTINE-funktio etsii hakumatriisin määritetylle hakuarvolle. Tässä tapauksessa hakuarvo on pisin tekstimerkkijono:
MAKS(PITUUS(C9:C13)
ja merkkijono sijaitsee tässä matriisissa:
PITUUS(C9:C13)
Tässä tapauksessa vastinetyyppiargumentti on 0. Vastinetyypin arvo voi olla 1, 0 tai -1.- 1 - palauttaa suurimman arvon, joka on pienempi tai yhtä suuri kuin hakuarvo
- 0 - palauttaa ensimmäisen arvon, joka on täsmälleen yhtä suuri kuin hakuarvo
- -1 - palauttaa pienimmän arvon, joka on suurempi tai yhtä suuri kuin määritetty hakuarvo
- Jos et määritä vastinetyyppiä, Excel käyttää oletusarvoa 1.
Lopuksi INDEKSI-funktio ottaa nämä argumentit: matriisi sekä rivin ja sarakkeen numero siinä matriisissa. Solualue C9:C13 antaa matriisin, VASTINE-funktio antaa solun osoitteen ja viimeinen argumentti (1) määrittää, että arvo tulee matriisin ensimmäisestä sarakkeesta.
Jos haluat saada pienimmän tekstimerkkijonon sisällön, korvaa MAKS yllä olevassa esimerkissä funktiolla MIN.Alueen n:n pienimmän arvon etsiminen
Tässä esimerkissä näytetään, miten löydät solualueen kolme pienintä arvoa, joiden avulla on luotu esimerkkitietojen matriisi soluissa B9:B18= INT(SATUNN.MATRIISI(10,1)*100). Huomaa, että SATUNN.MATRIISI on muuttuva funktio, joten saat uuden joukon satunnaislukuja aina, kun Excel laskee.
Kirjoita =PIENI(B9#,JONO(D9), =PIENI(B9:B18,{1;2;3})
Tämä kaava käyttää matriisivakiota PIENI-funktion arvioimiseen kolme kertaa ja palauttaa pienimmät kolme jäsentä matriisissa, joka sisältyy soluihin B9:B18, jossa 3 on muuttuja-arvo solussa D9. Jos haluat etsiä lisää arvoja, voit suurentaa JONO-funktion arvoa tai lisätä vakioon argumentteja. Voit käyttää tämän kaavan kanssa myös muita funktioita, kuten SUMMA- tai KESKIARVO-funktioita. Esimerkki:
=SUMMA(PIENI(B9#,JONO(D9))
=KESKIARVO(PIENI(B9#,JONO(D9))Alueen n:n suurimman arvon etsiminen
Jos haluat etsiä alueen suurimmat arvot, korvaa PIENI-funktio SUURI-funktiolla. Seuraavassa esimerkissä käytetään lisäksi RIVI- ja EPÄSUORA-funktioita.
Kirjoita =SUURI(B9#,RIVI(EPÄSUORA("1:3"))) tai =SUURI(B9:B18,RIVI(EPÄSUORA("1:3")))
Tässä vaiheessa voi olla hyödyllistä tietää hieman RIVI- ja EPÄSUORA-funktioista. RIVI-funktiolla voit luoda joukon peräkkäisiä kokonaislukuja. Valitse esimerkiksi tyhjä ja kirjoita:
=RIVI(1:10)
Kaava luo kymmenen peräkkäisen kokonaisluvun sarakkeen. Jos haluat tarkastella mahdollisia ongelmia, lisää rivi matriisikaavan sisältävän alueen yläpuolelle (eli rivin 1 yläpuolelle). Excel tarkistaa riviviittaukset ja kaava luo nyt kokonaisluvut 2-11. Voit korjata ongelman lisäämällä kaavaan EPÄSUORA-funktion:
=RIVI(EPÄSUORA("1:10"))
EPÄSUORA-funktio käyttää tekstimerkkijonoja argumentteina (tästä syystä alueen 1:10 ympärillä on lainausmerkit). Excel ei muuta tekstiarvoja, kun lisäät rivejä tai siirrät matriisikaavaa. Funktion ansiosta RIVI-funktio luo aina matriisin ainoastaan haluamistasi kokonaisluvuista. Voit yhtä helposti käyttää JONO-funktiota:
=JONO(10)
Tarkastellaan aiemmin käyttämääsi kaavaa — =SUURI(B9#,RIVI(EPÄSUORA("1: 3"))) — alkaen sisemmistä sulkeista ja siirtymällä ulospäin: EPÄSUORA-funktio palauttaa joukon tekstiarvoja, tässä tapauksessa arvot 1-3. RIVI-funktio puolestaan luo kolmen solun sarakematriisin. SUURI-funktio käyttää arvoja solualueella B9:B18, ja se arvioidaan kolme kertaa, kerran kutakin RIVI-funktion palauttamaa vertailua kohti. Jos haluat löytää enemmän arvoja, lisää EPÄSUORA-funktioon suurempi solualue. Kuten PIENI-esimerkeissä, voit käyttää tätä kaavaa myös muiden funktioiden, kuten SUMMA- ja KESKIARVO-funktioiden, kanssa.
Virheiden käsittely
-
Virhearvoja sisältävän alueen yhteenlaskeminen
Excelin SUMMA-funktio ei toimi, jos yrität laskea yhteen alueen, joka sisältää virhearvon, kuten #ARVO! tai #N/A. Tässä esimerkissä näytetään, miten voit laskea yhteen Tiedot-nimisen alueen, joka sisältää virheitä:
-
=SUMMA(JOS(ONVIRHE(Tiedot);"";Tiedot))
Kaava luo uuden taulukon, joka sisältää alkuperäiset arvot lukuun ottamatta virhearvoja. Sisemmistä funktioista alkaen ja ulospäin siirtymällä ONVIRHE-funktio etsii solualueelta (Data) virheitä. JOS-funktio palauttaa tietyn arvon, jos määrittämäsi ehto arvioi arvoksi TOSI ja toisen arvon, jos se arvioi arvoksi EPÄTOSI. In this case, it returns empty strings ("") for all error values because they evaluate to TRUE, and it returns the remaining values from the range (Data) because they evaluate to FALSE, meaning that they don't contain error values. SUMMA-funktio laskee sitten suodatetun matriisin kokonaissumman. -
Alueen virhearvojen määrän laskeminen
Tässä esimerkissä käytetään samantyyppistä kaavaa kuin edellisessä esimerkissä, mutta kaava palauttaa Tiedot-alueen virhearvojen määrän sen sijaan, että virhearvot suodatettaisiin pois:
=SUMMA(JOS(ONVIRHE(Tiedot);1;0))
Tämä kaava luo matriisin, joka sisältää arvon 1 soluille, joissa on virheitä, ja arvon 0 soluille, joissa ei ole virheitä. Voit yksinkertaistaa kaavaa ja saada saman tuloksen poistamalla JOS-funktion kolmannen argumentin:
=SUMMA(JOS(ONVIRHE(Tiedot);1))
Jos et määritä argumenttia, JOS-funktio palauttaa arvon EPÄTOSI, jos solu ei sisällä virhearvoa. Voit yksinkertaistaa kaavaa edelleen:
=SUMMA(JOS(ONVIRHE(Tiedot)*1))
Tämä kaava toimii, koska TOSI*1=1 ja EPÄTOSI*1=0.
Arvojen laskeminen yhteen ehtojen perusteella
Saatat joutua laskemaan arvot yhteen ehtojen perusteella.
Esimerkiksi seuraava matriisikaava laskee yhteen vain positiiviset kokonaisluvut Myynti-nimisellä alueella, joka on soluissa E9:E24 yllä olevassa esimerkissä:
=SUMMA(JOS(Myynti>0;Myynti))
JOS-funktio luo positiivisten ja epätosien arvojen matriisin. SUMMA-funktio ohittaa virheelliset arvot, koska 0+0=0. Kaavassa käytettävä solualue voi sisältää haluamasi määrän rivejä ja sarakkeita.
Voit myös laskea yhteen arvot, jotka vastaavat useampaa kuin yhtä ehtoa. Esimerkiksi tämä matriisikaava laskee arvot, jotka ovat suurempia kuin 0 JA pienempi kuin 2 500:
=SUMMA((Myynti>0)*(Myynti<2500)*(Myynti))
Huomaa, että tämä kaava palauttaa virheen, jos alue sisältää ei-numeerisia soluja.
Voit myös luoda matriisikaavoja, jotka käyttävät TAI-ehtoa. Voit esimerkiksi laskea yhteen arvot, jotka ovat suurempia kuin 0 tai pienempiä kuin 2 500:
=SUMMA(JOS((Myynti>0)+(Myynti<2500),Myynti))
Matriisikaavoissa ei voi käyttää suoraan JA- ja TAI-funktioita, koska nämä funktiot palauttavat yksittäisen tuloksen (joko TOSI tai EPÄTOSI) ja matriisifunktiot edellyttävät tulosmatriiseja. Voit kiertää ongelman käyttämällä edellisessä kaavassa esitettyä logiikkaa. Toisin sanoen suoritat matemaattisia operaatioita, kuten lisäys tai kertolasku arvoille, jotka täyttävät TAI- tai JA-ehdon.
Tässä esimerkissä näytetään, miten voit poistaa nollat alueelta, kun haluat laskea alueen arvojen keskiarvon. Kaavassa käytetään Myynti-nimistä tietoaluetta:
=KESKIARVO(JOS(Myynti<>0;Myynti))
JOS-funktio luo matriisin arvoista, jotka ovat eri suuria kuin 0, ja siirtää arvot sitten KESKIARVO-funktiolle.
Kahden solualueen välisten eroavaisuuksien määrän laskeminen
This array formula compares the values in two ranges of cells named MyData and YourData and returns the number of differences between the two. If the contents of the two ranges are identical, the formula returns 0. Tämän kaavan käyttämiseksi solualueiden on oltava samankokoisia ja samasta dimensiosta. Jos esimerkiksi MyData on kolmen rivin ja viiden sarakkeen alue, YourDatan on oltava myös kolme riviä ja viisi saraketta:
=SUMMA(JOS(MyData=YourData,0,1))
Kaava luo uuden matriisin, joka on samankokoinen kuin vertailtavat alueet. JOS-funktio lisää matriisiin arvon 0 ja arvon 1 (0 tarkoittaa eroavaisuuksia ja 1 identtisiä soluja). SUMMA-funktio palauttaa matriisin arvojen summan.
Voit yksinkertaistaa kaavaa seuraavasti:
=SUMMA(1*(MyData<>YourData))
Tämä kaava toimii samalla tavalla kuin alueen virhearvoja laskeva kaava, koska TOSI*1=1 ja EPÄTOSI*1=0.
Tämä matriisikaava palauttaa yksisarakkeisen Tiedot-nimisen alueen suurimman arvon rivinumeron:
=MIN(JOS(Tiedot=MAKS(Tiedot);RIVI(Tiedot);""))
JOS-funktio luo uuden matriisin, joka vastaa Tiedot-aluetta. Jos solu sisältää alueen suurimman arvon, matriisissa on rivinumero. Muissa tapauksissa matriisi sisältää tyhjän merkkijonon (""). MIN-funktio käyttää uutta matriisia toisena argumenttinaan ja palauttaa pienimmän arvon, joka vastaa Tiedot-alueen suurimman arvon rivinumeroa. Jos Tiedot-alueella on useita täysin samanlaisia suurimpia arvoja, kaava palauttaa ensimmäisen arvon rivinumeron.
Jos haluat selvittää suurimman arvon todellisen solun osoitteen, käytä seuraavaa kaavaa:
=OSOITE(MIN(JOS(Tiedot=MAKS(Tiedot);RIVI(Tiedot);""));SARAKE(Tiedot))
Samankaltaisia esimerkkejä on esimerkkityökirjan Tietojoukkojen väliset erot -laskentataulukossa.
Tunnustus
Tämän artikkelin osat perustuivat sarjaan Excel Power User -kolumneja, jotka Colin Wilcox on kirjoittanut, ja jotka on mukautettu entisen Excel MVP:n John Walkenbachin kirjoittaman kirjan Excel 2002 Formulas luvuista 14 ja 15.
Tarvitsetko lisätietoja?
Voit aina pyytää apua Excel Tech Communityn asiantuntijalta tai saada tukea yhteisöissä.
Katso myös
Dynaamiset matriisit ja levittyneiden matriisien erityispiirteet
Dynaamiset matriisikaavat vs. vanhat CSE-matriisikaavat
SUODATA-funktio
SATUNN.MATRIISI-funktio
JONO-funktio
LAJITTELE-funktio
LAJITTELE.ARVOJEN.PERUSTEELLA-funktio
AINUTKERTAISET.ARVOT-funktio
#LEVITTYMINEN! -virheet Excelissä