Home » excel » excel – Count a 2D array within a range

# excel – Count a 2D array within a range

Questions:

I have a map that I want to separately count the patterns of different numbers.

Without VB, I want to be able to create a dynamic counter that will be able to count the patterns of numbers.

For example:

I want to count how many times, even if it overlaps that this pattern occurs in the map

``````2 2
2 2
``````

Counting I can see the pattern occurs six times but I’m struggling to create a simple array formula that will be able to do so

I’ve been told of success with and IF function with nested AND functions so I know it can be done without VB.

Use the formula

``````=COUNTIFS(A1:E15,2,B1:F15,2)
``````

notice how the two areas are adjacent – one column offset from each other.

You can extend this to find two-by-two regions:

``````=COUNTIFS(A1:E14,2,B1:F14,2,A2:E15,2,B2:F15,2)
``````

just be very careful about how the different ranges are offset.

An alternative way to write this which, I suspect, will be more efficient for large ranges is:

``````=SUMPRODUCT((A1:E14=2)*(B1:F14=2)*(A2:E15=2)*(B2:F15=2))
``````