Author: Oscar Cronquist Article last updated on October 15, 2018

The array formula below counts how many times multiple text strings exist in a cell range. It is easy to add more text strings, adjust cell range D1:E1 horizontally. The formula takes into account if a text string exists multiple times in a single cell, see picture below.

Text strings "Car" and "bike" exist 5 times in cell range B3:B6.

### Case sensitive counting

Array formula in cell E4:

=SUM((LEN(B3:B6)-LEN(SUBSTITUTE(B3:B6,E2:F2,"")))/LEN(E2:F2))

or use this slightly larger regular formula:

=SUM(INDEX((LEN(B3:B6)-LEN(SUBSTITUTE(B3:B6,E2:F2,"")))/LEN(E2:F2),0,0))

### Case insensitive counting

Array formula in cell D2:

=SUM((LEN(B3:B6)-LEN(SUBSTITUTE(UPPER(B3:B6),UPPER(E2:F2),"")))/LEN(E2:F2))

or use this slightly larger regularÂ formula:

=SUM(INDEX((LEN(B3:B6)-LEN(SUBSTITUTE(UPPER(B3:B6),UPPER(E2:F2),"")))/LEN(E2:F2),0,0))

### How to enter an array formula

1. Â Select cell D2
2. Click in formula bar
3. Paste above array formula
4. Press and hold CTRL + SHIFT
5. Press Enter

The formula bar displays curly brackets:

{=SUM((LEN(A2:A5)-LEN(SUBSTITUTE(A2:A5,D1:E1,"")))/LEN(D1:E1))}

### Explaining array formula in cell D2

Step 1 - Count characters in each cell

Len(A2:A5)

becomes

Len({"Car train"; "airplane bike"; "boat Car"; "rocket Car bus Car"})

and returnsÂ {9; 13; 8; 18}

Step 2 - Replace existing text with new text string

SUBSTITUTE(A2:A5,D1:E1,"")

becomes

SUBSTITUTE({"Car train"; "airplane bike"; "boat Car"; "rocket Car bus Car"},{"Car", "bike"},"")

and returnsÂ {" train", "Car train"; "airplane bike", "airplane "; "boat ", "boat Car"; "rocket Â bus ", "rocket Car bus Car"}

Step 3 -Â Count characters in each value

LEN(SUBSTITUTE(A2:A5, D1:E1, ""))

becomes

LEN({" train", "Car train"; "airplane bike", "airplane "; "boat ", "boat Car"; "rocket Â bus ", "rocket Car bus Car"})

and returnsÂ {6,9;13,9;5,8;12,18}

Step 4 - Subtract

LEN(A2:A5)-LEN(SUBSTITUTE(A2:A5,D1:E1,""))

becomes

{9; 13; 8; 18} - {6,9;13,9;5,8;12,18}

an returns

{3,0;0,4;3,0;6,0}

Step 5 - Divide with length of each search string

(LEN(A2:A5)-LEN(SUBSTITUTE(A2:A5,D1:E1,"")))/LEN(D1:E1)

becomes

{3,0;0,4;3,0;6,0}/LEN(D1:E1)

becomes

{3,0;0,4;3,0;6,0}/{3,4}

and returnsÂ {1,0;0,1;1,0;2,0}

Step 6 - Sum all values

SUM((LEN(A2:A5)-LEN(SUBSTITUTE(A2:A5,D1:E1,"")))/LEN(D1:E1))

becomes

SUM({1,0;0,1;1,0;2,0})

and returns 5 in cell D2