Web Applications Asked on November 3, 2021
Given the string "AABACCCDAC",
how do I count the number of times "C" occurs?
My initial thought was to use countif on a SPLIT of the string. But Split won’t split on "" — a null string.
We can still sort of split a string on each position using MID
. If we throw in an COUNTIF
as per your attempt it could look like:
=ARRAYFORMULA(COUNTIF(MID(A1,SEQUENCE(LEN(A1)),1),"C"))
Though, a bit simpler would be:
=SUMPRODUCT(MID(A1,SEQUENCE(LEN(A1)),1)="c")
Or in case of a longer string (let's stick with the cat =)):
=SUMPRODUCT(MID(A1,SEQUENCE(LEN(A1)),3)="cat")
Answered by JvdV on November 3, 2021
Sherwood, assuming that the string were in cell A1:
=LEN(A1)-LEN(SUBSTITUTE(A1,"C",""))
In your example string — AABACCCDAC — LEN(A1) would be 10. If we SUBSTITUTE all the occurrences of "C" with null, we'd have the length of "everything else." Subtracting the two tells what's missing... which would be the number of occurrences of "C."
You could also do something similar with REGEXREPLACE:
=LEN(REGEXREPLACE(A1,"[^C]",""))
The [^C] means "everything except 'C'."
I should add that this would only work as stated in your post: with one letter.
If you want to search for longer strings (say "cat"):
=(LEN(A1)-LEN(SUBSTITUTE(A1,"cat","")))/LEN("cat")
If you didn't divide by the number of characters in your search string, you'd wind up with the number of characters found instead of the number of strings.
Answered by Erik Tyler on November 3, 2021
Get help from others!
Recent Questions
Recent Answers
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP