Find last nonblank in a column

  • Thread starter George W. Barrowcliff
  • Start date
G

George W. Barrowcliff

How can I find the last nonblank value in a column of numbers?

TIA

GWB
 
R

RagDyeR

Try this:

=LOOKUP(2,1/(1-ISBLANK(F1:F1000)),F1:F1000)
--

HTH,

RD
==============================================
Please keep all correspondence within the Group, so all may benefit!
==============================================


How can I find the last nonblank value in a column of numbers?

TIA

GWB
 
S

Sandy Mann

George,

Provided that you do not mean WHOLE column when you say column of numbers
try:

=LOOKUP(2,1/ISNUMBER(L1:L1000),L1:L1000)

--
HTH

Sandy
[email protected]
Replace@mailinator with @tiscali.co.uk
 
A

Aladin Akyurek

=LOOKUP(9.99999999999999E+307,A:A)

which will return the last numeric value from column A if any.
 
A

Aladin Akyurek

That puts efficiency in back seat. <g>
Thanks, for the quick responses. Does exactly what I needed to do.

--

[1] The SumProduct function should implicitly coerce the truth values to
their Excel numeric equivalents.
[2] The lookup functions should have an optional argument for the return
value, defaulting to #N/A in its absence.
 
S

Sandy Mann

Aladin,

I accept that your use of LOOKUP is more efficient than mine, (well my
plagiarised version really, probably the only original thought I have had
was, "I wonder if there is anything on the net about Excel?"), for one thing
'mine' used two function calls. So that I can expand my understanding of
how XL works, do you know if LOOKUP checks all 65,536 rows or just the used
range? If it does check all rows, is it still faster than a limited range -
say 1,000 rows. I other words is it 65 times faster?

--
Regards

Sandy
[email protected]
Replace@mailinator with @tiscali.co.uk


Aladin Akyurek said:
That puts efficiency in back seat. <g>
Thanks, for the quick responses. Does exactly what I needed to do.

--

[1] The SumProduct function should implicitly coerce the truth values to
their Excel numeric equivalents.
[2] The lookup functions should have an optional argument for the return
value, defaulting to #N/A in its absence.
 
A

Aladin Akyurek

Sandy said:
Aladin,

I accept that your use of LOOKUP is more efficient than mine, (well my
plagiarised version really, probably the only original thought I have had
was, "I wonder if there is anything on the net about Excel?"), for one thing
'mine' used two function calls. So that I can expand my understanding of
how XL works, do you know if LOOKUP checks all 65,536 rows or just the used
range? If it does check all rows, is it still faster than a limited range -
say 1,000 rows. I other words is it 65 times faster?

LOOKUP() effects a binary search (see:
http://www.nist.gov/dads/HTML/binarySearch.html), thus very fast.

In

=LOOKUP(2,1/ISNUMBER(L1:L1000),L1:L1000)

it's not LOOKUP itself that requires time. Rather:

(a) the evaluation of ISNUMBER(L1:L1000), and

(b) 1/Expression

Hence, the formula

=LOOKUP(2,1/ISNUMBER(L1:L1000),L1:L1000)

is significantly less efficient compared to

=LOOKUP(9.99999999999999E+307,L:L)

When the interest is in retrieving the last numeric value, one would
should invoke the latter, not the former.
 
S

Sandy Mann

Aladin Akyurek said:
LOOKUP() effects a binary search (see:
http://www.nist.gov/dads/HTML/binarySearch.html), thus very fast.

Thank you Aladin.

I don't profess to understand all the information in link that you posted
but I took from it that in the worst case scenario it would only take 17
comparisons to produce a result for 65536 rows which, as you said, is very
fast

--
Regards

Sandy
[email protected]
Replace@mailinator with @tiscali.co.uk
 
D

davidm

Can someone please explain how this formula works

=LOOKUP(2,1/ISNUMBER(L1:L1000),L1:L1000)

in the context LOOKUP vector having the following syntax
LOOKUP(LOOKUP_VALUE,LOOKUP_VECTOR,RESULT_VECTOR)

If Column L contains data, ISNUMBER(L1:L1000) evaluates to TRUE (or 1)
with the reciprocal also being 1. Parsed to the LOOKUP function, the
result yields
=LOOKUP(2,1,L1:L1000) - which is nothing like the conventional syntax
quoted above. I am stumped.

TIA
 
D

davidm

Many thanks, Aladin. It is crystal plain now, thanks to your elaborate
discourse in the link provided. I cannot cease to be amazed at some of
the discoveries made about the behaviour of worksheet functions-as yet
not documented!
 
D

davidm

Aladin,

I sense a downside to the "Bignumber" deployment. While the formula
work flawlessly for soted data, LOOKUP seems to get into a tailspin i
the data is *unsorted*. Any comments
 
Top