Couple of questions here:
How do you move fractions of a row? Those should be integral values - 4 rows down or 5 rows down, but not 4.xx
Do the column D values match those in column C exactly?
If you're OK with being "close" as you look up values, and you agree that counting rows to two decimal places doesn't work, you can do this:
(I don't have a place to link from, so imagine that I've pasted a screen cap.)
Column E formula =(VLOOKUP(D2,C:C,1)) This returns a % from column C that is less than your column D value. Add "FALSE" to the end if values would match exactly between C and D.
Column F formula =MID(CELL("address",INDEX(C:C,MATCH(E2,C:C,1))),4,2) CELL will return the address of your VLOOKUP (i.e. $C$8). MID(...,4,2) strips it down to only the row number
Column G formula =row(E2)
Column H formula =F2-G2