This is easy to do - you just need to reformat your data a little.
While not strictly necessary, it would be advantageous to first move the HR Ranges and Training Zone into its own, separate table. That way it's separate from the individual sessions.
You might also want to put the column headers in the first row rather than in the second row as they are now (that's kind of what header rows are intended for).
Secondly, reformat the HR Range to have only the upper value (e.g '125') rather than the formatted range (e.g. '108-125'). The reason to do this is that XLOOKUP can automatically return the next-highest value in the range, so searching for, say, 120, will automatically return the match for 125 as the next highest, which is something it cannot do when the lookup range says '108-125'.
So now your HR table should look like:

Now you can set F2 to a simple XLOOKUP:

=XLOOKUP(E2,HR Range,Training Zone,"",1)
The 1 at the end equate to the options for 'exact or next largest' in the search, and