I have the following Excel spreadsheet:
A B C D E F
1 | | Jan. Feb. March April May
2 | Profit | 100 200 200
3 | Cell Reference last non-empty cell | ??
In Row 2 you can find the profit for each month. In Cell B3 I want to to display the address of the last non-empty cell in Row 2. For this I tried the following formula:
=ADDRESS(ROW(B2),MATCH((IFERROR(LOOKUP(2,1/($A2:$F2<>0),$A2:$F2),0)),$A2:$F2,0),4,1)
This formula works perfectly if all the numbers in Row 2 are unique. However, in my example above you can see that the profit in Februay
equals the profit in March
; therefore, the formula above gives me the address C2
instead of D2
.
What do I have to change in my formula to always get the address of the last non-empty cell no matter if it is unique or not?
Use:
Which will return the last cell with a number in that range.
For text and numbers:
Consider:
NOTE:
The last restriction is important because the formula relies on finding the first empty in the row and taking one step back!
You can use the following array formula:
This returns the address of the last non-empty cell in the 2nd row.
Note this is an array formula, so you muse press Ctrl+Shift+Enter on the keyboard when entering this formula rather than just pressing Enter.
I agree with @ScottCraner that returning the address usually isn't useful. If you are planning on using this value, as part of another formula, you should not do this:
Instead, skip using
INDIRECT
andADDRESS
altogether and instead useINDEX
to get the value in that cell, i.e.