Ser etter en av to tekstverdier

January 4  by Eliza

Chris ønsker å telle celler som inneholder tekst verdi A eller tekst verdi B, hvor som helst i cellens tekst. Hvis cellen inneholder både A og B, ønsker hun å telle den, men bare én gang. For eksempel, har Chris tre celler som inneholder "eple frø", "apple tree", og "fersken frø", og hun ønsker å vite antall celler som inneholder enten "eple" eller "frø". (Riktig svar som skal returneres er 3.)

Det er mange måter at dette kan bli kontaktet. I vurderer løsninger, undersøkte jeg bare de løsninger som unngår mellom svar, som opptar flere kolonner. Den første løsningen innebærer å bruke ANTALL.HVIS-funksjonen på denne måten:

= ANTALL.HVIS (A1: A9, "* eple *") + ANTALL.HVIS (A1: A9, "* frø *")
-COUNTIF (A1: A9, "* frø * eple *") - ANTALL.HVIS (A1: A9, "* eple * frø *")

Formelen teller alle cellene som inneholder enten "eple" eller "frø" og deretter trekker fra alle cellene som inneholder "frø" etterfulgt av "eple" (begge ordene er i cellen) eller "eple" etterfulgt av "frø" ( de samme ordene i motsatt rekkefølge).

En annen løsning er dette en litt kortere, avhengig av COUNTA og FINN funksjoner, slik som vist her:

= ANTALLA (A1: A9) -SUMPRODUCT (- (ERFEIL (FIND ("eple", A1: A9)))
* - ERFEIL (FIND ("seed", A1: A9)))

Formelen teller cellene som inneholder verdier og deretter trekker alle de celler som ikke inneholder enten "eple" eller "seed". Merk at FINN-funksjonen er store og små bokstaver, noe som betyr at det bare er "eple" er funnet og ikke "Apple" eller "APPLE". Hvis du trenger noe som er små bokstaver, erstatte FINN med Search.

Du kan også, hvis du foretrekker å bruke en av Excel database funksjoner. Forutsatt at du har en kolonne på vei mot dine originale fraser, er dette ikke så vanskelig å gjøre, og det resulterer i den korteste formel. Alt du trenger å gjøre er å sette opp en tilsvarende kriterier bord. For eksempel, la oss si at data er i A1: A9, og den første cellen i kolonnen inneholder en overskrift som "My fraser". I en annen kolonne bør du sette samme header og da, i de to cellene direkte under det, plassere disse to formler:

* Eple *
* Frø *

Kriteriene spesifisere at du ønsker å matche noen celler som inneholder "eple" eller "frø" i cellen. Med dette satt opp (jeg antar du plasserte kriteriene tabellen i D1: D3), kan du bruke følgende formel:

= DCOUNTA (A1: A9,1, D1: D3)

Selvfølgelig kan du også bruke en matriseformel (inn ved å trykke Ctrl + Shift + Enter) for å få svar. Følgende er en slik formel som er avhengig, igjen, på fraser som blir sjekket for å være i A1: A9:

= SUM (- ((ISNUMBER (FINN ("eple", A1: A9)) + ISNUMBER (FIND ("seed", A1: A9))) 0>))

Hvis du helle mer mot å arbeide med makroer, kan du opprette en brukerdefinert funksjon som returnerer teller for deg. Det følgende er et eksempel på en som vil fungere:

Funksjons FindTwoStrings (RNG Som Range, s1 As String, _
s2 As String) As Integer
Application.Volatile
Hvis Typename (RNG) <> "Range" Then Exit Function
Dim celle Som Range
For Hver celle I rng.Cells
If (InStr (1, UCase (cell.Value), UCase (s1), _
vbTextCompare)> 0) Eller (InStr (1, UCase (cell.Value), _
UCase (s2), vbTextCompare) 0>) Deretter _
FindTwoStrings = FindTwoStrings + 1
Neste celle
End Function

Bruke funksjonen kan du bruke denne formelen i en celle:

= FindTwoStrings (A1: A9, "eple", "seed")

ExcelTips er din kilde for kostnadseffektiv Microsoft Excel trening. Dette tipset (9325) gjelder for Microsoft Excel 97, 2000, 2002, og 2003. Du kan finne en versjon av dette tipset for Båndet av Excel (Excel 2007 og senere) her: Ser etter en av to tekstverdier.