microsoft excel – Searching a column from bottom to top for the first next non-zero value

I have a list of price data in a row in excel, however I only want to accept the next number if it is bigger than the last. If I reject the new number I want to keep the previous number. I can do this quite simply using an IF/AND statement but it gets more complicated when a have several consecutive days of falling prices.

Screenshot of the excel sheet

In the picture: So for clarity, on the right hand side I want a formula where the 0’s iteratively lookup the value in the cell above them, if it is non-zero they take this value, if it is zero they check the next cell up and so on until they find a value

hope this is clear