## Explanation

At the core, this formula uses the COUNTIFS function to count dates that are greater than or equal to the first day of the *current* month, and less than the first day of the *next* month. The EOMONTH function is used to create both dates based on the current date, which is supplied by the TODAY function.

```
=COUNTIFS(dates,">="&EOMONTH(TODAY(),-1)+1,dates,"<"&EOMONTH(TODAY(),0)+1)
```

To get the first day of the month, we use the EOMONTH function like this:

```
EOMONTH(TODAY(),-1)+1
```

EOMONTH returns the *last* day of the *previous* month, to which 1 is added to get the *first* day of the *current* month. In a similar way, we use EOMONTH to get the *first* day of the *next* month:

```
EOMONTH(TODAY(),0)+1
```

EOMONTH returns the *last* day of the *current* month, to which 1 is added to get the *first* day of the *next* month. The literal translation of the logic in COUNTIFS is: *greater than or equal to the first day in the current month AND less than the first day of the next month.*

Alternatively, you could use less than or equal (<=) operator for the last day like this:

```
=COUNTIFS(dates,">="&EOMONTH(TODAY(),-1)+1,dates,"<="&EOMONTH(TODAY(),0))
```

### Previous and next months

To count dates in the previous month:

```
=COUNTIFS(dates,">="&EOMONTH(TODAY(),-2)+1,dates,"<"&EOMONTH(TODAY(),-1)+1)
```

To count dates in the next month:

```
=COUNTIFS(dates,">="&EOMONTH(TODAY(),0)+1,dates,"<"&EOMONTH(TODAY(),1)+1)
```

### SUMPRODUCT alternative

You can also count dates in the previous, current, and next month using SUMPRODUCT function together with the TEXT function like this:

```
=SUMPRODUCT(N(TEXT(EOMONTH(TODAY(),-1),"mmyy")=TEXT(rng,"mmyy")))
=SUMPRODUCT(N(TEXT(TODAY(),"mmyy")=TEXT(rng,"mmyy")))
=SUMPRODUCT(N(TEXT(EOMONTH(TODAY(),1),"mmyy")=TEXT(rng,"mmyy")))
```

Here, dates are fed into the TEXT function to get a month and year string, which is used for comparison in an array operation inside SUMPRODUCT. The result is an array of TRUE FALSE values, where TRUE represents dates in the month of interest.

The N function is used to change these values to ones and zeros, and SUMPRODUCT simply sums and returns the array.