Sisällysluettelo
Yritätkö rakentaa JOS-lauseen, jossa on jokerimerkkitekstiä, mutta se epäonnistuu joka kerta? Ongelma ei ole kaavassa vaan itse funktiossa - Excelin JOS-lause ei tue jokerimerkkejä. On kuitenkin olemassa keino saada se toimimaan osittaisen tekstin vastaavuuden osalta, ja tämä opetusohjelma opettaa sinulle miten.
Aina kun Excelissä halutaan suorittaa osittainen tai sumea täsmäytys, ilmeisin ratkaisu on käyttää jokerimerkkejä. Mutta entä jos tietty funktio, jota sinun on käytettävä, ei tue jokerimerkkejä? Valitettavasti Excelin IF on yksi tällaisista funktioista. Tämä on erityisen harmillista, kun otetaan huomioon, että muut "ehdolliset" funktiot, kuten COUNTIF, SUMIF ja AVERAGEIFS, toimivat jokerimerkkien kanssa täysin hyvin.
Onneksi se ei ole este, joka voi pysäyttää luovan Excel-käyttäjän :) Yhdistämällä IF:n muiden funktioiden kanssa voit pakottaa sen arvioimaan osittaisen vastaavuuden ja saada mukavan vaihtoehdon Excelin IF-vaderkorttikaavalle.
Miksi Excelin IF-toiminto jokerimerkillä ei toimi
Oletetaan, että alla olevassa esimerkkitaulukossa halutaan tarkistaa, sisältävätkö ensimmäisessä sarakkeessa olevat tunnukset kirjaimen "A". Jos löytyi, sarakkeessa B näytetään "Kyllä", jos ei, näytetään "Ei".
Näyttää siltä, että jokerimerkkitekstin sisällyttäminen loogiseen testiin olisi helppo ratkaisu:
=IF(A2="*a*", "Kyllä", "Ei")
Valitettavasti se ei kuitenkaan toimi, sillä kaava antaa tulokseksi "Ei" kaikille soluille, myös niille, jotka sisältävät "A":
Miksi jokerimerkin IF-lauseke epäonnistuu? Kaikesta päätellen Excel ei tunnista jokerimerkkejä, joita käytetään yhtäläisyysmerkin tai muiden loogisten operaattoreiden kanssa. Kun tarkastelet tarkemmin jokerimerkkejä tukevien funktioiden luetteloa, huomaat, että niiden syntaksissa oletetaan, että jokerimerkkiteksti esiintyy suoraan argumentissa näin:
=COUNTIF(A2:A10, "*a*")
Excel IF sisältää osittaista tekstiä
Nyt kun tiedät syyn, miksi jokerimerkkikaava IF ei toimi, yritetään selvittää, miten se saadaan toimimaan. Tätä varten upotamme yksinkertaisesti funktion, joka hyväksyy jokerimerkit IF:n loogiseen testiin, nimittäin COUNTIF-funktion:
IF(COUNTIF( solu , "* teksti *"), value_if_true, value_if_false)Tällä lähestymistavalla IF:llä ei ole ongelmia jokerimerkkien ymmärtämisessä, ja se tunnistaa moitteettomasti solut, jotka sisältävät joko "A" tai "a" (koska COUNTIF ei erota isoja ja pieniä kirjaimia):
=IF(COUNTIF(A2, "*a*"), "Kyllä", "Ei")
Tämä kaava siirtyy B2:een tai mihin tahansa muuhun rivin 2 soluun, ja voit vetää sen niin moneen soluun kuin haluat:
Tätä ratkaisua voidaan käyttää myös tietyn kuvion merkkijonot Jos oletetaan, että vain tunnukset, jotka koostuvat kahdesta kahden merkin ryhmästä, jotka on erotettu toisistaan väliviivalla, ovat kelvollisia, voit käyttää "??-???" -kenttämerkkiä niiden tunnistamiseen:
=IF(COUNTIF(A2, "??-???"), "Valid", "")
Miten tämä kaava toimii:
IF:n loogiseen testaukseen käytetään COUNTIF-funktiota, joka laskee niiden solujen määrän, jotka vastaavat määritettyä jokerimerkkijonoa. Koska kriteerialue on yksi solu (A2), tulos on aina 1 (vastaavuus löytyy) tai 0 (vastaavuutta ei löydy). Koska 1 vastaa TRUE:a (totta) ja 0 FALSE:a (epätosi), kaava palauttaa arvon "Valid" (arvo_jos_tosi), kun laskenta on 1, ja tyhjän merkkijonon (arvo_jos_tosi), kun arvocount on 0.
IF ISNUMBER HAKUMENETELMÄ osittaisia osumia varten
Toinen tapa pakottaa Excelin IF-toiminto toimimaan osittaisessa tekstin vastaavuudessa on sisällyttää loogiseen testiin joko FIND- tai SEARCH-toiminto. Erona on, että FIND-toiminnossa otetaan huomioon isot ja pienet kirjaimet, kun taas SEARCH-toiminnossa ei.
Riippuen siitä, haluatko käsitellä pieniä ja isoja kirjaimia samoina vai eri merkkeinä, jompikumpi näistä kaavoista toimii:
Case-insensitive kaava osittaista vastaavuutta varten:
IF(ISNUMBER(SEARCH(" teksti ", solu )), value_if_true, value_if_false)Case-sensitive kaava osittaista vastaavuutta varten:
IF(ISNUMBER(FIND(" teksti ", solu )), value_if_true, value_if_false)Koska molemmat toiminnot on suunniteltu suorittamaan "solu sisältää" -tyyppinen vastaavuus, jokerimerkkejä ei tässä tapauksessa oikeastaan tarvita.
Esimerkiksi "A" tai "a" sisältävien tunnusten tunnistamiseksi kaava on seuraava:
=IF(ISNUMBER(SEARCH("A", A2)), "Kyllä", "Ei")
Jos haluat etsiä vain isoa "A" ja jättää "a" huomiotta, kaava on:
=IF(ISNUMBER(FIND("A", A2)), "Kyllä", "Ei")
Alla olevassa kuvakaappauksessa B6 voit havaita eron tuloksissa:
Miten tämä kaava toimii:
Kaavan ytimessä on ISNUMBERin ja SEARCHin (tai FINDin) yhdistelmä:
ISNUMBER(SEARCH("A", A2))
SEARCH-funktio etsii määritettyä tekstiä ("A" tässä esimerkissä) ja palauttaa sen sijainnin merkkijonossa A2:ssa. Jos tekstiä ei löydy, palautetaan #VALUE-virhe. Koska sekä SEARCH- että FIND-funktio on suunniteltu suorittamaan "solu sisältää" -tyyppinen täsmäys, jokerimerkkejä ei tässä tapauksessa tarvita.
ISNUMBER-funktio muuntaa numeron arvoksi TRUE ja minkä tahansa muun arvon, virhe mukaan lukien, arvoksi FALSE. Looginen arvo menee suoraan IF:n loogiseen testiin. Meidän tapauksessamme A2 sisältää "A", joten ISNUMBER palauttaa TRUE:
IF(TRUE, "Kyllä", "Ei")
Tuloksena IF palauttaa arvon, joka on asetettu arvolle value_if_true argumentti, joka on "Kyllä".
Excel IF OR -lauseke jokerimerkkien kanssa
Haluatko tunnistaa solut, jotka sisältävät jonkin jokerimerkkitekstijonon? Tässä tapauksessa voit yhdistää klassisen IF OR -lausekkeen ja edellä käsitellyn COUNTIF- tai ISNUMBER SEARCH -kaavan.
Jos haluat esimerkiksi etsiä A2:sta kirjainta "aa" TAI "bb" ilman kirjainkokoa ja palauttaa "Kyllä", jos jompikumpi niistä löytyy, käytä jotakin seuraavista kaavoista:
=IF(OR(ISNUMBER(SEARCH("aa", A2)), ISNUMBER(SEARCH("bb", A2))), "Kyllä", "")
tai
=IF(OR(COUNTIF(A2, "*aa*"), COUNTIF(A2, "*bb*")), "Kyllä", "")
Kahden COUNTIF-funktion yhteenlasku toimii myös. Tässä tapauksessa plus-merkki toimii kuten OR-operaattori:
=IF(COUNTIF(A3, "*aa*") + COUNTIF(A3, "*bb*"), "Kyllä", "")
Sen sijaan, että kirjoittaisit jokerimerkkijonoja kaavaan, voit syöttää ne erillisiin soluihin, esimerkiksi D2 ja F2, kuten alla olevassa kuvakaappauksessa näkyy. Huomaa, että nämä soluviittaukset on lukittu $-merkillä, jotta kaava kopioidaan oikein alla oleviin soluihin:
=IF(OR(COUNTIF(A2, "*"&$D$2& "*"), COUNTIF(A2, "*"&$F$2& "*")), "Kyllä", "")
Edellä esitetyt kaavat toimivat hyvin 2 osittaisen osuman osalta, mutta jos etsit 3 tai useampia osumia, niistä tulee liian pitkiä. Tällöin on järkevää lähestyä tehtävää eri tavalla:
Anna SEARCH-funktiolle useita osajonoja array-vakiossa, laske palautetut numerot ja tarkista, onko tulos suurempi kuin nolla (mikä tarkoittaisi, että vähintään yksi osajonoista on löydetty):
=IF(COUNT(SEARCH({"aa", "bb"}, A2))>0, "Kyllä", "")
Näin saat täsmälleen saman tuloksen tiiviimmällä kaavalla:
Excelin IF AND-kaava jokerimerkkien kanssa
Kun haluat tarkistaa, sisältääkö solu kaksi tai useampia eri merkkijonoja, helpoin tapa on käyttää COUNTIFS-funktiota ja jokerimerkkejä loogista testiä varten.
Oletetaan, että haluat etsiä sarakkeen A soluja, jotka sisältävät sekä "b" että "2". Voit tehdä sen käyttämällä COUNTIFS:n kriteereiksi "*b*" ja "*2*" ja kriteerialueeksi A2:
=IF(COUNTIFS(A2, "*b*", A2, "*2*"), "Kyllä", "")
Toinen tapa on käyttää IF AND -kaavaa yhdessä ISNUMBER SEARCHin kanssa:
=IF(AND(ISNUMBER(SEARCH("b", A2)), ISNUMBER(SEARCH("2", A2))), "Kyllä", "")
Vaikka emme sisällytä mitään jokerimerkkejä tähän kaavaan, se toimii kuin etsittäisiin kahta jokerimerkkijuttua ("*b*" ja "*2*") samasta solusta.
Mikään ei tietenkään estä sinua syöttämästä hakuarvoja ennalta määritettyihin soluihin, meidän tapauksessamme D2 ja F2, ja syöttämästä soluviittauksia kaavaan:
=IF(AND(ISNUMBER(SEARCH($D$2, A2)), ISNUMBER(SEARCH($F$2, A2))), "Yes", "")
Jos haluat käyttää tiiviimpiä kaavoja aina kun se on mahdollista, saatat pitää enemmän array constant -lähestymistavasta. IF COUNT SEARCH -kaava on hyvin samanlainen kuin edellisessä esimerkissä, mutta koska tällä kertaa molempien merkkijonojen on esiinnyttävä A2:ssa, tarkistamme, onko luku yhtä suuri kuin 2:
=IF(COUNT(SEARCH({"b", "2"}, A2))=2, "Kyllä", "")
Nämä ovat tärkeimmät tavat käyttää jokerimerkkejä Excelin IF-lauseessa. Jos tiedät muita ratkaisuja, muut käyttäjät arvostavat varmasti, jos jaat kokemuksesi kommenteissa. Kiitos lukemisesta ja toivottavasti näemme sinut blogissamme ensi viikolla!
Käytännön työkirja ladattavissa
Excel IF jokerimerkkikaavojen esimerkit (.xlsx-tiedosto)