Does the cell have a number?

F

Fletcher

I want a formula that will tell me if a given cell has a number in it, so it
evaluates the type of data. I looked in the help files and couldn't figure
this out.

Thanks,
Craig
 
F

Fletcher

I tried that, but if the cell has numbers and text, it replies back with
FALSE. I would like to be able to determine if any part of the cell contents
is a number, even if the string starts with, or contains letters.

Thanks!
 
G

Gord Dibben

Fletcher

You could use a UDF

Function hasNumbers(myString As String) As Boolean
If myString Like "*[1234567890]*" Then
hasNumbers = True
Else
hasNumbers = False
End If
End Function

usage is: =hasNumbers(cellref)


Gord Dibben Excel MVP
 
R

Rob van Gelder

=SUMPRODUCT(--(ABS(CODE(MID(A1, ROW(INDIRECT("1:" & LEN(A1))), 1)) -
52.5)<=4.5))>0
 
R

Rob van Gelder

MID(A1, ROW(INDIRECT("1:" & LEN(A1))), 1) allows the string to be split into
individual entries
CODE(..) returns the ascii code for each character - I'm looking for numbers
which are in the range 48 to 57 for "0" to "9"
Then subtract 52.5, which is midway between 48 and 57 48+(57-48)/2 where
(57-48)/2 = 4.5
ABS turns negative numbers to positive. So this means ascii codes for
numbers are from 0 to 4.5
Check to see whether any of the numbers are less than or equal to 4.5 which
returns a series of TRUE/FALSE
-- turns TRUE, FALSE to 1, 0
SUMPRODUCT adds the entries of an array.
0 means the count of characters which were identified as numbers
 
T

tjtjjtjt

Thank you. It's quite clever.

tj

Rob van Gelder said:
MID(A1, ROW(INDIRECT("1:" & LEN(A1))), 1) allows the string to be split into
individual entries
CODE(..) returns the ascii code for each character - I'm looking for numbers
which are in the range 48 to 57 for "0" to "9"
Then subtract 52.5, which is midway between 48 and 57 48+(57-48)/2 where
(57-48)/2 = 4.5
ABS turns negative numbers to positive. So this means ascii codes for
numbers are from 0 to 4.5
Check to see whether any of the numbers are less than or equal to 4.5 which
returns a series of TRUE/FALSE
-- turns TRUE, FALSE to 1, 0
SUMPRODUCT adds the entries of an array.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top