## Explanation

Working from the inside out, the expression:

```
MATCH(TRUE,TEXT(date,"mmyy")=TEXT(E5,"mmyy")
```

uses the TEXT function to generate an array of strings in the format "mmyy":

`{"0117";"0117";"0117";"0217";"0217";"0217";"0317";"0317";"0317"}`

which are compared to a single string based on the value in E5, "0117". The result is an array of TRUE / FALSE values:

`{TRUE;TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}`

This array is fed into the MATCH function as the *lookup_array*, with a *lookup_value* of TRUE, and a *match_type* of zero for exact match. In exact match mode, the MATCH function returns the position of the first TRUE in the array, which is 1 in the formula in F5. This position goes into INDEX as the row number, with an array based on the named range "entry":

```
=INDEX(entry,1)
```

Finally, INDEX returns the item inside **entry** as a final result.

Note: if an entry isn't found for a given month and year, this formula will return #N/A.

### Get the first entry based on today's date

To get the first entry for a given month and year based on today's date, you can adapt the formula to use the TODAY function instead of the value in E5:

```
{=INDEX(entry,MATCH(TRUE,TEXT(date,"mmyy")=TEXT(TODAY(),"mmyy"),0))}
```