Excel: cellen met specifieke tekst tellen (exacte en gedeeltelijke overeenkomst)

  • Deel Dit
Michael Brown

De handleiding laat zien hoe u het aantal cellen met bepaalde tekst in Excel kunt tellen. U vindt formulevoorbeelden voor exact overeenkomende, gedeeltelijk overeenkomende en gefilterde cellen.

Vorige week hebben we bekeken hoe u cellen met tekst kunt tellen in Excel, dat wil zeggen alle cellen met tekst. Wanneer u grote stukken informatie analyseert, wilt u misschien ook weten hoeveel cellen specifieke tekst bevatten. In deze handleiding wordt uitgelegd hoe u dat op een eenvoudige manier kunt doen.

    Hoe cellen met specifieke tekst te tellen in Excel

    Microsoft Excel heeft een speciale functie om cellen voorwaardelijk te tellen, de COUNTIF-functie. Het enige wat u hoeft te doen is de doeltekststring in de criteria argument.

    Hier is een algemene Excel-formule om het aantal cellen met specifieke tekst te tellen:

    COUNTIF(range, " tekst ")

    Het volgende voorbeeld toont het in actie. Stel, u hebt een lijst met artikel-ID's in A2:A10 en u wilt het aantal cellen tellen met een bepaald id, bijvoorbeeld "AA-01". Typ deze tekenreeks in het tweede argument, en u krijgt deze eenvoudige formule:

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

    Om uw gebruikers in staat te stellen cellen met een bepaalde tekst te tellen zonder de formule te hoeven wijzigen, voert u de tekst in een vooraf gedefinieerde cel in, bijvoorbeeld D1, en geeft u de celverwijzing:

    =COUNTIF(A2:A10, D1)

    Opmerking. De Excel COUNTIF-functie is hoofdletterongevoelig Om hoofdletters en kleine letters anders te behandelen, gebruikt u deze hoofdlettergevoelige formule.

    Hoe cellen met bepaalde tekst tellen (gedeeltelijke overeenkomst)

    De formule uit het vorige voorbeeld komt exact overeen met de criteria. Als er ten minste één afwijkend teken in een cel staat, bijvoorbeeld een extra spatie aan het eind, is dat geen exacte overeenkomst en wordt zo'n cel niet meegeteld.

    Om het aantal cellen te vinden die bepaalde tekst als deel van hun inhoud bevatten, gebruikt u jokertekens in uw criteria, namelijk een sterretje (*) dat staat voor een willekeurige reeks of tekens. Afhankelijk van uw doel kan een formule er als volgt uitzien.

    Tel de cellen die specifieke tekst bevatten op de begin :

    COUNTIF(range, " tekst *")

    Tel cellen die bepaalde tekst bevatten in elke positie :

    COUNTIF(range, "* tekst *")

    Om bijvoorbeeld te vinden hoeveel cellen in het bereik A2:A10 beginnen met "AA", gebruikt u deze formule:

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

    Om het aantal cellen met "AA" op een willekeurige plaats te krijgen, gebruik je deze:

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

    Om de formules dynamischer te maken, vervangt u de hardcodetekens door celverwijzingen.

    Om cellen te tellen die beginnen met bepaalde tekst:

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

    Om cellen te tellen met bepaalde tekst ergens erin:

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

    Het onderstaande screenshot toont de resultaten:

    Cellen tellen die specifieke tekst bevatten (hoofdlettergevoelig)

    In situaties waarin u onderscheid moet maken tussen hoofdletters en kleine letters, werkt de COUNTIF-functie niet. Afhankelijk van de vraag of u een exacte of gedeeltelijke overeenkomst zoekt, moet u een andere formule opstellen.

    Hoofdlettergevoelige formule om cellen met specifieke tekst te tellen (exacte overeenkomst)

    Om het aantal cellen te tellen met bepaalde tekst die het tekstgeval herkent, gebruiken we een combinatie van de functies SUMPRODUCT en EXACT:

    SOMPRODUCT(--EXACT(" tekst ", reeks ))

    Hoe deze formule werkt:

    • EXACT vergelijkt elke cel in het bereik met de voorbeeldtekst en geeft een array van TRUE- en FALSE-waarden terug, waarbij TRUE staat voor exacte overeenkomsten en FALSE voor alle andere cellen. Een dubbel koppelteken (genaamd een dubbel unair ) zet TRUE en FALSE om in 1's en 0's.
    • SUMPRODUCT telt alle elementen van de matrix op. Die som is het aantal 1'en, dat is het aantal overeenkomsten.

    Om bijvoorbeeld het aantal cellen in A2:A10 te krijgen dat de tekst in D1 bevat en hoofdletters en kleine letters als verschillende tekens hanteert, gebruikt u deze formule:

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

    Hoofdlettergevoelige formule om cellen met specifieke tekst te tellen (gedeeltelijke overeenkomst)

    Om een hoofdlettergevoelige formule op te stellen die overal in een cel een interessante tekststring kan vinden, gebruiken we 3 verschillende functies:

    SUMPRODUCT(--(ISNUMBER(FIND(" tekst ", reeks ))))

    Hoe deze formule werkt:

    • De hoofdlettergevoelige FIND-functie zoekt naar de doeltekst in elke cel van het bereik. Als dat lukt, geeft de functie de positie van het eerste teken, anders de fout #VALUE! Voor de duidelijkheid, we hoeven de exacte positie niet te weten, elk getal (in tegenstelling tot de fout) betekent dat de cel de doeltekst bevat.
    • De functie ISNUMBER verwerkt de door FIND geretourneerde reeks getallen en fouten en zet de getallen om in TRUE en al het andere in FALSE. Een dubbele unary (--) zet de logische waarden om in enen en nullen.
    • SUMPRODUCT telt de matrix van 1's en 0's op en geeft het aantal cellen terug die de opgegeven tekst als deel van hun inhoud bevatten.

    Om de formule te testen op echte gegevens, laten we uitzoeken hoeveel cellen in A2:A10 de substring input in D1 bevatten:

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

    En dit levert een telling van 3 op (cellen A2, A3 en A6):

    Hoe gefilterde cellen met specifieke tekst tellen

    Om te tellen zichtbare items in een gefilterde lijst, moet u een combinatie van 4 of meer functies gebruiken, afhankelijk van of u een exacte of gedeeltelijke overeenkomst wilt. Om de voorbeelden gemakkelijker te kunnen volgen, kijken we eerst even naar de brongegevens.

    Ervan uitgaande dat u een tabel heeft met Order ID's in kolom B en Hoeveelheid in kolom C zoals in de onderstaande afbeelding. U bent nu alleen geïnteresseerd in hoeveelheden groter dan 1 en u hebt uw tabel dienovereenkomstig gefilterd. De vraag is - hoe telt u gefilterde cellen met een bepaald id?

    Formule om gefilterde cellen met specifieke tekst te tellen (exacte overeenkomst)

    Gebruik een van de volgende formules om gefilterde cellen te tellen waarvan de inhoud exact overeenkomt met de voorbeeldtekst:

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

    =SUMPRODUCT(SUBTOTAAL(103, OFFSET(A2:A10, RIJ(A2:A10) - MIN(RIJ(A2:A10)),,1)), --(B2:B10=F1))

    Waarbij F1 de voorbeeldtekst is en B2:B10 de te tellen cellen.

    Hoe deze formules werken:

    De kern van beide formules bestaat uit 2 controles:

    1. Identificeer zichtbare en verborgen rijen. Hiervoor gebruikt u de SUBTOTAL-functie met de functie_nummer argument ingesteld op 103. Om alle individuele celverwijzingen aan SUBTOTAL te leveren, gebruikt u ofwel INDIRECT (in de eerste formule) of een combinatie van OFFSET, ROW en MIN (in de tweede formule). Aangezien we zichtbare en verborgen rijen willen lokaliseren, maakt het niet echt uit naar welke kolom we moeten verwijzen (A in ons voorbeeld). Het resultaat van deze bewerking is een matrix van 1's en 0's waarbij de enen staan voor zichtbarerijen en nullen - verborgen rijen.
    2. Zoek cellen die een gegeven tekst bevatten. Vergelijk hiervoor de voorbeeldtekst (F1) met het cellenbereik (B2:B10). Het resultaat van deze bewerking is een array van TRUE- en FALSE-waarden, die met behulp van de dubbele unary operator worden omgezet in 1's en 0's.

    Tenslotte vermenigvuldigt de SUMPRODUCT-functie de elementen van de twee matrices op dezelfde posities, en sommeert vervolgens de resulterende matrix. Omdat vermenigvuldigen met nul nul nul oplevert, hebben alleen de cellen die in beide matrices een 1 hebben, een 1 in de uiteindelijke matrix. De som van de 1's is het aantal gefilterde cellen dat de gespecificeerde tekst bevat.

    Formule om gefilterde cellen met specifieke tekst te tellen (gedeeltelijke overeenkomst)

    Om gefilterde cellen te tellen die bepaalde tekst bevatten als onderdeel van de celinhoud, wijzigt u de bovenstaande formules op de volgende manier. In plaats van de voorbeeldtekst te vergelijken met het cellenbereik, zoekt u naar de doeltekst met behulp van ISNUMBER en FIND, zoals uitgelegd in een van de vorige voorbeelden:

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

    =SUMPRODUCT(SUBTOTAAL(103, OFFSET(A2:A10, RIJ(A2:A10) - MIN(RIJ(A2:A10)),,1)), --(ISNUMBER(FIND(F1, B2:B10))))

    Het resultaat is dat de formules een gegeven tekststring op een willekeurige plaats in een cel kunnen vinden:

    Opmerking. De SUBTOTAL-functie met 103 in de functie_nummer argument, identificeert alle verborgen cellen, uitgefilterd en handmatig verborgen. Het resultaat is dat bovenstaande formules alleen tellen zichtbare cellen ongeacht hoe onzichtbare cellen werden verborgen. Om alleen uitgefilterde cellen uit te sluiten maar de handmatig verborgen cellen mee te nemen, gebruikt u 3 voor functie_nummer .

    Zo tel je het aantal cellen met bepaalde tekst in Excel. Ik dank je voor het lezen en hoop je volgende week op onze blog te zien!

    Beschikbare downloads

    Excel formules om cellen met bepaalde tekst te tellen

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.