Formatting TRUE/FALSE to 1/0

G

Guest

It's nice to use TRUEs and FALSEs in simple calculations (such as add and
multiply) where TRUE cells are treated by Excel as having a value of 1 and
FALSE cells 0 - although it is strange that =SUM treats them all as 0.

Does anyone know a way of formatting logical cells to actually display 1 for
TRUE and 0 for FALSE?

Obviously one could put together a macro or UDF that physically converted
these values but I would ideally like some kind of Excel format.
 
B

Bob Phillips

Not a format, it is not a number so format does not apply.

Change the formula to return 1 or 0, for instance

=(U1="")

--
---
HTH

Bob

(there's no email, no snail mail, but somewhere should be gmail in my addy)
 
R

Ron Rosenfeld

It's nice to use TRUEs and FALSEs in simple calculations (such as add and
multiply) where TRUE cells are treated by Excel as having a value of 1 and
FALSE cells 0 - although it is strange that =SUM treats them all as 0.

Does anyone know a way of formatting logical cells to actually display 1 for
TRUE and 0 for FALSE?

Obviously one could put together a macro or UDF that physically converted
these values but I would ideally like some kind of Excel format.

The number formats only apply to cells that contain numbers.

If you want to display 1 or 0, you would have to convert the logical results to
numbers, perhaps by preceding your formula with a double unary.

e.g. =--(your_formula_that_returns_TRUE/FALSE)


--ron
 
D

Dave Peterson

I wouldn't do this.

I think it causes other problems later on, but you could use:
Tools|Options|transition tab|Check Transition formula evalation.

If you do this, remember that you changed this setting when you're debugging
other stuff that looks fine--but just doesn't work the way you think it should.
 
G

Guest

Thanks for all the replies; I especially like the double unary as a neat
method of, in effect, multiplying by 1. (Incidentally I did a search on that
and was interested to see that you can also use this -- prefix for the lookup
value in a VLOOKUP in case your lookup value is text and the first column of
the lookup table is numbers - useful if unrelated!).

As Bob says, TRUE/FALSE are not numbers so I guess we should just be
grateful they return 1 and 0 in simple calculations (and aren't -1 and 0 as
they are in VBA).

Looking at it the other way around, it would be nice if Excel could format
1s and 0s to TRUEs and FALSEs for use in truth tables, e.g.

A B A x B
TRUE TRUE TRUE
TRUE FALSE FALSE
FALSE TRUE FALSE
FALSE FALSE FALSE

You can fiddle it with the number format "TRUE";;"FALSE" but this goes wrong
(strangely) for a typed 0.
 
G

Guest

Actually the "TRUE";;"FALSE" format has suddenly started working for me for
typed zeroes in a new sheet.
 
R

Ron Rosenfeld

Actually the "TRUE";;"FALSE" format has suddenly started working for me for
typed zeroes in a new sheet.

Yes it should. You are formatting a number to display TRUE or FALSE. In your
original request, you wanted to opposite (type TRUE or FALSE, and display a
number).

Of course, any positive number will display TRUE; so if someone accidently
typed in a 2 or 10, you might see TRUE, but any mathematic operation would
perhaps not give the expected results.

You could perhaps use the custom format:

[=1]"TRUE";[=0]"FALSE";General

That would display TRUE for a typed in 1; FALSE for a typed in 0; and the
actual value if you typed in anything else.


--ron
 
B

Bob Phillips

Of course, any positive number will display TRUE; so if someone accidently
typed in a 2 or 10, you might see TRUE, but any mathematic operation would
perhaps not give the expected results.

Actually, it is any non-zero number
 
B

Bob Phillips

Smallweed said:
Thanks for all the replies; I especially like the double unary as a neat
method of, in effect, multiplying by 1. (Incidentally I did a search on
that
and was interested to see that you can also use this -- prefix for the
lookup
value in a VLOOKUP in case your lookup value is text and the first column
of
the lookup table is numbers - useful if unrelated!).

Yes, because -- is coercing to number, so anything that is numeric,
including say "1234", can be coerced.
 

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