A good first step is determining the *row* of the most recent closing price
that was greater than or equal to today’s closing price.
Look at *all* the rows where the closing price
was greater than or equal to today’s closing price.
In your sample data, they are rows 13, 14, 16, 17, 19, 20, 22, 23 and 24
(and presumably more, going further back in time).
Which one is the most recent?
It’s 13, because it is the smallest (minimum) row number in the list.

Now, let’s see if we can construct that list.
It seems like we want to evaluate

IF( B*n* >= B12, *n*, *(nothing)* )

We can actually do something similar:

```
=MIN(IF(B13:B100>=B$12, ROW(B13:B100)))
```

replacing the `100`

with a number that’s larger than
the largest row number that might ever contain data.
(I imagine in your case that you could use 365, or 260 (52×5),
or a multiple of one of those if you have multiple years’ worth of data.)

The above is an *array formula*.
Therefore, to get it to work,
you must type `Ctrl`+`Shift`+`Enter`
after you type the formula.

But you don’t want the row number; you want the data.
This part is easy:

```
=INDEX($A:$A, MIN(IF(B13:B100>B$12, ROW(B13:B100))))
```

Again, you must type `Ctrl`+`Shift`+`Enter`
after you type the formula.