If you are manually marking "f" and "l" in a column and trying to reverse-engineer cell references with INDIRECT, you are fighting your spreadsheet instead of letting it work for you. That approach is brittle, slow, and will break the moment your data shifts by a single row.
What you actually have is a classic problem: irregularly spaced time-series data that needs grouped calculations. The "f" and "l" markers are a clever manual hack, but they reveal the real issue, your spreadsheet lacks the ability to natively understand dates as groups. The solution is not to build a custom lookup that moves up and down from each cell. The solution is to give every row a single, consistent group identifier: the date itself.
If column A contains your timestamps, extract the date into a new column using INT(A2) or a DATE function. Now every row that belongs to the same calendar day shares an identical value. From there, a PivotTable gives you daily min and max in seconds. No INDIRECT, no hunting for "f" or "l," no fragile formulas that need adjusting when new data arrives. If you need the result on every row rather than in a summary table, use MAXIFS and MINIFS with the date column as the criteria range, these functions exist in modern Excel and handle your 15,000 rows without breaking a sweat.
The deeper point here is that spreadsheets reward thinking in structures, not in cell-level gymnastics. When you find yourself writing a formula that moves one cell up, one cell left, then converts that position into a reference, you have outgrown the tool's manual mode. That does not mean you are doing something wrong, it means you are ready for a smarter approach. Let the data tell you how it is organized, and build your logic around that shape, not around the visual markers you placed by hand.
Stop chasing "f" and "l." Give each row a date, and let the functions do the grouping for you. That is how you turn 15,000 rows of hourly readings into a clean daily summary, without the fragility.