Using the most recent cell in a formula in Excel - excel

I want to have a formula that substracts the last cell in a column.
Example:
I fill in a value in the B column every now and then. B2 is the starting value. In C2 I want this formula to show the difference between the starting value and the most recent value. So if I fill in a value in B5 today, the formula should be
=B2-B5
But if I fill in B6 tomorrow, it should automatically change to
=B2-B6
With what formula can I do this?

You can try:
=B2-INDEX(B:B,MATCH(9.99E+307,B:B))

=$B$2-LOOKUP(2,1/ISNUMBER($B:$B),$B:$B)

Related

Google Sheets or Excel: setting the value of a remote cell from a formula

Is there a way to create a formula in one cell that will change the value in another cell based on some criteria, without scripting? Example: cell a1 contains a numerical value. cell b1 contains a value from a drop-down list, say, "YES,NO". If cell b1 is set to "YES" I want to remove (set to zero) the value in cell a1. What I'd like to do is have a formula in cell c1 that interrogates b1 and sets the value in a1 accordingly. Is the only way achieve this writing code and using setValue?
you cant remove it without a script. you can visually hide it in various ways. if the A1 is subject of further sum (as in your case per your comment) the sum formula can be always altered to reflect desired output. example:
if your formula is
=SUM(A1, C5, D22)
you can do
=SUM(IF(B1="YES", 0, A1), C5, D22)
Use the following on the cell you need the calculation (or zero) on:
=IF (B1="YES",0,SUM(A:A))
Using the given formula, you would do the SUM calculation for the whole Column A if the value on B1 is "YES", if not, then a 0 would be placed on the cell you put the formula on.

In excel 365 how to subtract values sequentially but skip empty cells

Not sure how to word this exactly. We have a spreadsheet to keep track of pump runtimes.
We want to subtract the run times in column B and output to Column C so for instance B4-B5 would output .3 to C4. I don't have a problem with basic formula =B4-B5 in C4 and so on down the column. However when I get to B8 I want B7 to subtract B10 and skip the B8 and B9. The reason is that the 25th and 26th was a weekend so values weren't recorded. (these sheets are printed, recorded on location and then brought back to the plant at the end of the month) so what if possible would be a formula I can use?
after using the formula this is what happens:
enter image description here
Try the following formula in C4 and drag down
=IF(B4<>0,B4-INDEX(B5:$B$33,MATCH(TRUE,B5:$B$33<>0,0)),0)
It's checking the cells below for the first non-zero and returning the difference to that value. The key principle here is in the range B5:$B$33. The dollar signs ensure that when you drag the formula down the end of the range you're checking stays at B33, whereas B5 will become B6, B7, etc.
If the column B entries are stricly non-increasing, as per your example, in C4:
=IF(B4,B4-XLOOKUP(9^9,B5:B$33,B5:B$33,B4,-1),0)
and copied down.

date formula to return blank if cell is empty

I have the following formula in cell R3. =If(Isblank(E3),"",(E3)+365. This formula gives me the date I am looking for if I have a date entered in cell E3. However cell E3 does not always have a date in it. When there is no date in cell E3 I get #Value in cell R3. Is there a way to leave R3 blank if no date entered in E3.
How about:
=IF(E3="","",E3+365)
Alternately you could wrap your entire formula within an IFERROR() function:
=IFERROR(IF(ISBLANK(E3), "", E3+365), "")
The advantage of this (or disadvantage depending on which way you look at it) is that it will also mitigate any other errors you might encounter from incorrect data types being placed into cell E3, such as #DIV/0, etc.

A3 = B3, next day I will need the formula to change to A3 = B4, help please

I need some big help on this.
I need to increment my cell references in a formula everytime some condition is used.
Let's say i take my data to be displayed in A3 from B3, my formula will be A3 = B3 in simple terms, but the next day I will need A3 to take data from B4 instead as B3 will be my past data already, how will I increment the formula to change to A3 = B4? Forgive me on my ignorance.
Based on your clarification in the comments above, this should work fine:
=OFFSET(B1,COUNTA(B:B)-1,0)
Input the above in A1. It will always return the last row in Column B (assuming your data in Column B is contiguous).
Screenshot:
Set-up:
Result:
Hope this helps.
As an alternative to the Offset() suggestion, try in A1
=INDEX(B:B,MAX(IFERROR(MATCH(99^99,B:B,1),0),IFERROR(MATCH("zzzzzzz",B:B,1),0)))
This will work with both numeric and text data. You can edit the formula to remove the Match for numbers if your file only has text in that column, and vice versa.
Key differences to the Offset() suggestion:
this formula will return the last entry in column B, even if there are gaps and blank cells in column B
the index/match combo formula is not volatile. Offset() is volatile and will cause the whole workbook to recalculate when any cell anywhere in the file changes. In large data models with many calculations, that can cause slowness. I a small spreadsheet, you won't notice a difference.

Copy a Value from a row to another row based on a condition

Friends i need a excel formal, struggling for some thing like this form past few days :(
it should search for the value in which starts with `01` in `B row`
and past that value in `A1,A2,A3,A4.......` till it got another value in `B row`
which stars with `01`.
in my table B1 will start with 01 for 100%
so after B1 if B27 has a value starting with 01, this formal should copy the B1 value from A1 to A26
from A27 it should past the value of B27 (from A27 to some other cell in B row which starts with 01 )
Your English could be better ^^;
Anyway, if I understand well, it seems to me that a simple IF() would suit you.
In A2, put:
=IF(LEFT(B2,2)="01",B2,A1)
In A1, just put the value of B1 yourself since the formula can't reference to cell A0.
Then just drag down the formula.

Resources