Excel: laske solut, jotka sisältävät tiettyä tekstiä (tarkka ja osittainen vastaavuus)

  • Jaa Tämä
Michael Brown

Ohjeessa näytetään, miten lasketaan niiden solujen määrä, joissa on tiettyä tekstiä Excelissä. Löydät kaavaesimerkkejä tarkalle vastaavuudelle, osittaiselle vastaavuudelle ja suodatetuille soluille.

Viime viikolla tarkastelimme, miten Excelissä lasketaan solut, joissa on tekstiä, eli kaikki solut, joissa on tekstiä. Kun analysoit suuria tietomääriä, haluat ehkä myös tietää, kuinka monta solua sisältää tiettyä tekstiä. Tässä ohjeessa selitetään, miten se tehdään yksinkertaisella tavalla.

    Kuinka laskea soluja, joissa on tietty teksti Excelissä

    Microsoft Excelissä on erityinen funktio solujen ehdolliseen laskemiseen, COUNTIF-funktio. Sinun tarvitsee vain antaa kohdetekstin merkkijono kentässä kriteerit argumentti.

    Tässä on yleinen Excel-kaava, jolla lasketaan tiettyä tekstiä sisältävien solujen määrä:

    COUNTIF(range, " teksti ")

    Seuraava esimerkki näyttää sen toiminnassa. Oletetaan, että sinulla on luettelo kohteiden tunnuksista A2:A10 ja haluat laskea niiden solujen lukumäärän, joissa on tietty tunnus, esimerkiksi "AA-01". Kirjoita tämä merkkijono toiseen argumenttiin, niin saat tämän yksinkertaisen kaavan:

    =COUNTIF(A2:A10, "AA-01")

    Jos haluat, että käyttäjät voivat laskea soluja, joissa on mitä tahansa tekstiä ilman, että kaavaa tarvitsee muuttaa, syötä teksti ennalta määritettyyn soluun, esimerkiksi D1, ja anna soluviite:

    =COUNTIF(A2:A10, D1)

    Huomautus: Excelin COUNTIF-funktio on case-insensitive Jos haluat käsitellä isoja ja pieniä kirjaimia eri tavalla, käytä tätä iso- ja pienaakkoset huomioivaa kaavaa.

    Kuinka laskea solut, joissa on tietty teksti (osittainen ottelu)?

    Edellisessä esimerkissä käsitelty kaava vastaa täsmälleen kriteerejä. Jos solussa on vähintään yksi eri merkki, esimerkiksi ylimääräinen välilyönti lopussa, se ei ole täsmällinen vastaavuus, eikä tällaista solua lasketa mukaan.

    Jos haluat löytää niiden solujen määrän, joiden sisältö sisältää tiettyä tekstiä, käytä kriteereissäsi jokerimerkkejä, eli tähteä (*), joka edustaa mitä tahansa sarjaa tai merkkejä. Tavoitteestasi riippuen kaava voi näyttää seuraavalta.

    Laske solut, jotka sisältävät tiettyä tekstiä aivan alku :

    COUNTIF(range, " teksti *")

    Laske solut, jotka sisältävät tiettyä tekstiä mikä tahansa asema :

    COUNTIF(range, "* teksti *")

    Jos haluat esimerkiksi selvittää, kuinka monta solua alueella A2:A10 alkaa kirjaimella "AA", käytä tätä kaavaa:

    =COUNTIF(A2:A10, "AA*")

    Jos haluat saada niiden solujen lukumäärän, jotka sisältävät "AA" missä tahansa kohdassa, käytä tätä:

    =COUNTIF(A2:A10, "*AA*")

    Jos haluat tehdä kaavoista dynaamisempia, korvaa kovakoodatut merkkijonot soluviittauksilla.

    Voit laskea solut, jotka alkavat tietyllä tekstillä:

    =COUNTIF(A2:A10, D1& "*")

    Laskea soluja, joissa on tiettyä tekstiä missä tahansa:

    =COUNTIF(A2:A10, "*"&D1&"*")

    Alla olevassa kuvakaappauksessa näkyvät tulokset:

    Laske solut, jotka sisältävät tiettyä tekstiä (isot ja pienet kirjaimet huomioiden)

    Tilanteessa, jossa sinun on erotettava isot ja pienet kirjaimet toisistaan, COUNTIF-toiminto ei toimi. Riippuen siitä, etsitkö tarkkaa vai osittaista vastaavuutta, sinun on laadittava eri kaava.

    Case-sensitive kaava laskea soluja, joissa on tiettyä tekstiä (tarkka vastaavuus).

    Jos haluat laskea niiden solujen lukumäärän, joissa on tiettyä tekstiä, joka tunnistaa tekstikotelon, käytämme SUMPRODUCT- ja EXACT-funktioiden yhdistelmää:

    SUMPRODUCT(--EXACT(" teksti ", alue ))

    Miten tämä kaava toimii:

    • EXACT vertaa jokaista alueen solua esimerkkitekstiin ja palauttaa TRUE- ja FALSE-arvojen joukon, jossa TRUE edustaa täsmällistä vastaavuutta ja FALSE kaikkia muita soluja. Kaksoisviiva (jota kutsutaan double unary ) pakottaa TRUE ja FALSE arvoihin 1 ja 0.
    • SUMPRODUCT laskee yhteen kaikki matriisin elementit. Summa on ykkösten määrä, joka on osumien määrä.

    Jos haluat esimerkiksi saada niiden solujen lukumäärän kohdassa A2:A10, jotka sisältävät tekstin D1 ja käsittelevät isoja ja pieniä kirjaimia eri merkkeinä, käytä tätä kaavaa:

    =SUMPRODUCT(--EXACT(D1, A2:A10))

    Case-sensitive kaava laskea soluja, joissa on tiettyä tekstiä (osittainen vastaavuus).

    Rakennamme 3 eri funktiota rakentaaksemme case-sensitiivisen kaavan, joka voi löytää kiinnostavan tekstijonon mistä tahansa solusta:

    SUMPRODUCT(--(ISNUMBER(FIND(" teksti ", alue ))))

    Miten tämä kaava toimii:

    • Isot ja pienet kirjaimet huomioiva FIND-funktio etsii kohdetekstiä alueen jokaisesta solusta. Jos se onnistuu, funktio palauttaa ensimmäisen merkin sijainnin, muutoin #VALUE! -virhe. Selkeyden vuoksi meidän ei tarvitse tietää tarkkaa sijaintia, mikä tahansa numero (toisin kuin virhe) tarkoittaa, että solu sisältää kohdetekstin.
    • ISNUMBER-funktio käsittelee FIND:n palauttamaa numeroiden ja virheiden joukkoa ja muuntaa numerot TRUE:ksi ja kaikki muut FALSE:ksi. Kaksinkertainen unary (--) pakottaa loogiset arvot ykkösiksi ja nolliksi.
    • SUMPRODUCT laskee yhteen 1:n ja 0:n sarjan ja palauttaa niiden solujen lukumäärän, jotka sisältävät määritetyn tekstin osana sisältöään.

    Testataksemme kaavaa tosielämän tiedoilla, selvitetään, kuinka monta solua A2:A10:ssä sisältää D1:ssä syötetyn merkkijonon:

    =SUMPRODUCT(--(ISNUMBER(FIND(D1, A2:A10))))

    Tuloksena on 3 (solut A2, A3 ja A6):

    Kuinka laskea suodatetut solut, joissa on tiettyä tekstiä

    Laskea näkyvät kohteet suodatetussa luettelossa, sinun on käytettävä neljän tai useamman toiminnon yhdistelmää riippuen siitä, haluatko tarkan vai osittaisen vastaavuuden. Jotta esimerkkien seuraaminen olisi helpompaa, tarkastellaan ensin nopeasti lähdetietoja.

    Oletetaan, että sinulla on taulukko, jossa on Tilaustunnukset sarakkeessa B ja Määrä sarakkeessa C, kuten alla olevassa kuvassa näkyy. Tällä hetkellä olet kiinnostunut vain määristä, jotka ovat suurempia kuin 1, ja olet suodattanut taulukkosi sen mukaisesti. Kysymys kuuluu - miten lasket suodatetut solut, joilla on tietty tunnus?

    Kaava, jolla lasketaan suodatetut solut, joissa on tiettyä tekstiä (tarkka vastaavuus).

    Jos haluat laskea ne suodatetut solut, joiden sisältö vastaa täsmälleen esimerkkitekstiä, käytä jotakin seuraavista kaavoista:

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(B2:B10=F1)))

    =SUMPRODUCT(VÄLISUMMA(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(B2:B10=F1)))

    Missä F1 on esimerkkiteksti ja B2:B10 ovat laskettavat solut.

    Miten nämä kaavat toimivat:

    Molempien kaavojen ytimessä on kaksi tarkistusta:

    1. Tunnistetaan näkyvät ja piilotetut rivit. Tähän käytetään SUBTOTAL-funktiota, jossa on komentoarvo function_num argumentin arvoksi on asetettu 103. Jos haluat toimittaa SUBTOTAL:lle kaikki yksittäiset soluviittaukset, käytä joko INDIRECT (ensimmäisessä kaavassa) tai OFFSET, ROW ja MIN -yhdistelmää (toisessa kaavassa). Koska tavoitteena on löytää näkyvät ja piilotetut rivit, ei ole väliä, mihin sarakkeeseen viitataan (esimerkissämme A). Tämän operaation tuloksena on joukko 1:iä ja 0:a, jossa ykköset edustavat näkyviä rivejä.rivit ja nollat - piilorivit.
    2. Etsitään solut, jotka sisältävät annettua tekstiä. Tätä varten verrataan esimerkkitekstiä (F1) solualueeseen (B2:B10). Tämän operaation tuloksena on joukko TRUE- ja FALSE-arvoja, jotka muutetaan 1:ksi ja 0:ksi unaarisen kaksoisoperaattorin avulla.

    Lopuksi SUMPRODUCT-funktio kertoo molempien matriisien elementit samoissa kohdissa ja laskee tuloksena syntyvän matriisin yhteen. Koska kertominen nollalla antaa nollan, vain solut, joissa on 1 molemmissa matriiseissa, saavat 1:n lopullisessa matriisissa. 1:ien summa on niiden suodatettujen solujen määrä, jotka sisältävät määritettyä tekstiä.

    Kaava, jolla lasketaan suodatetut solut, joissa on tiettyä tekstiä (osittainen vastaavuus).

    Jos haluat laskea suodatetut solut, jotka sisältävät tiettyä tekstiä osana solujen sisältöä, muuta edellä mainittuja kaavoja seuraavasti. Sen sijaan, että vertaisit näytetekstiä solualueeseen, etsi kohdetekstiä käyttämällä ISNUMBER- ja FIND-merkkejä, kuten yhdessä edellisistä esimerkeistä selitettiin:

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(ISNUMBER(FIND(F1, B2:B10))))

    =SUMPRODUCT(VÄLISUMMA(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(ISNUMBER(FIND(F1, B2:B10))))

    Tämän seurauksena kaavat löytävät tietyn tekstijonon mistä tahansa solun kohdasta:

    Huomautus: SUBTOTAL-toiminto, jossa on 103 vuonna function_num argumentti tunnistaa kaikki piilotetut solut, jotka on suodatettu pois ja piilotettu manuaalisesti. Tämän seurauksena yllä olevat kaavat laskevat vain näkyvät solut riippumatta siitä, miten näkymättömät solut on piilotettu. Jos haluat sulkea pois vain suodatetut solut, mutta sisällyttää manuaalisesti piilotetut solut, käytä arvoa 3 merkinnässä function_num .

    Näin lasket Excelissä niiden solujen määrän, joissa on tiettyä tekstiä. Kiitän sinua lukemisesta ja toivon, että tapaamme blogissamme ensi viikolla!

    Saatavilla olevat lataukset

    Excel-kaavat, joilla lasketaan soluja, joissa on tiettyä tekstiä

    Michael Brown on omistautunut teknologian harrastaja, jolla on intohimo yksinkertaistaa monimutkaisia ​​prosesseja ohjelmistotyökalujen avulla. Yli vuosikymmenen kokemuksella teknologia-alalta hän on hionut taitojaan Microsoft Excelissä ja Outlookissa sekä Google Sheetsissä ja Docsissa. Michaelin blogi on omistettu jakamaan tietojaan ja asiantuntemustaan ​​muiden kanssa, ja se tarjoaa helposti seurattavia vinkkejä ja opetusohjelmia tuottavuuden ja tehokkuuden parantamiseksi. Olitpa kokenut ammattilainen tai aloittelija, Michaelin blogi tarjoaa arvokkaita oivalluksia ja käytännön neuvoja, joiden avulla saat kaiken irti näistä tärkeistä ohjelmistotyökaluista.