ExcelBanter

ExcelBanter (https://www.excelbanter.com/)
-   Excel Worksheet Functions (https://www.excelbanter.com/excel-worksheet-functions/)
-   -   =IF(test,true,false) only ever returns "true"? (https://www.excelbanter.com/excel-worksheet-functions/213077-%3Dif-test-true-false-only-ever-returns-true.html)

TagTech

=IF(test,true,false) only ever returns "true"?
 
A little help please. I have data imported to Excel from a legacy app. Some
DOB is a length of 7, e.g. 1012008 and some DOB is a length of 8, e.g.
11012008. Neither formula following is working for me:


=IF( (LEN(B4=8)),(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"& RIGHT(B4,4)),
(LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)) )


=IF( (LEN(B4=7)), (LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)),
(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"& RIGHT(B4,4)) )

If I test for a length of eight and the date is 11012008 I get 11/01/2008,
which is good. However, if the date is 1012008 I get 10/12/2008, which is
not good.

If I test for a length of seven and the date is 11012008 I get 1/10/2008,
which is not good. However if the date is 1012008 I get 1/01/2008, which is
good.

It seems I only ever get the "true" formulation. Any thoughts? Thanks.

Niek Otten

=IF(test,true,false) only ever returns "true"?
 
You have the bracker for the LEN function in the wrong place.
Try this:
=IF( (LEN(B4)=8),(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"&
RIGHT(B4,4)),(LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)) )
There are still more brackets than necessary, BTW

--
Kind regards,

Niek Otten
Microsoft MVP - Excel

"TagTech" wrote in message
...
A little help please. I have data imported to Excel from a legacy app.
Some
DOB is a length of 7, e.g. 1012008 and some DOB is a length of 8, e.g.
11012008. Neither formula following is working for me:


=IF( (LEN(B4=8)),(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"& RIGHT(B4,4)),
(LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)) )


=IF( (LEN(B4=7)), (LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)),
(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"& RIGHT(B4,4)) )

If I test for a length of eight and the date is 11012008 I get 11/01/2008,
which is good. However, if the date is 1012008 I get 10/12/2008, which is
not good.

If I test for a length of seven and the date is 11012008 I get 1/10/2008,
which is not good. However if the date is 1012008 I get 1/01/2008, which
is
good.

It seems I only ever get the "true" formulation. Any thoughts? Thanks.



T. Valko

=IF(test,true,false) only ever returns "true"?
 
You have the LEN test *inside* the LEN function. Move it outside the LEN
function. Also, your formula returns a *TEXT* string that looks like a date
but is not a true Excel data.

Try this:

=--TEXT(IF(LEN(B4)=7,"0"&B4,B4),"00\/00\/0000")

Format in the Date style of your choice for a true Excel date.

--
Biff
Microsoft Excel MVP


"TagTech" wrote in message
...
A little help please. I have data imported to Excel from a legacy app.
Some
DOB is a length of 7, e.g. 1012008 and some DOB is a length of 8, e.g.
11012008. Neither formula following is working for me:


=IF( (LEN(B4=8)),(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"& RIGHT(B4,4)),
(LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)) )


=IF( (LEN(B4=7)), (LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)),
(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"& RIGHT(B4,4)) )

If I test for a length of eight and the date is 11012008 I get 11/01/2008,
which is good. However, if the date is 1012008 I get 10/12/2008, which is
not good.

If I test for a length of seven and the date is 11012008 I get 1/10/2008,
which is not good. However if the date is 1012008 I get 1/01/2008, which
is
good.

It seems I only ever get the "true" formulation. Any thoughts? Thanks.




Harlan Grove[_2_]

=IF(test,true,false) only ever returns "true"?
 
"T. Valko" wrote...
....
Try this:

=--TEXT(IF(LEN(B4)=7,"0"&B4,B4),"00\/00\/0000")


Prepending 0 unnecessary.

TEXT("1232009","00\/00\/0000") and TEXT("01232009","00\/00\/0000")
both return "01/23/2009".

T. Valko

=IF(test,true,false) only ever returns "true"?
 
"Harlan Grove" wrote in message
...
"T. Valko" wrote...
...
Try this:

=--TEXT(IF(LEN(B4)=7,"0"&B4,B4),"00\/00\/0000")


Prepending 0 unnecessary.

TEXT("1232009","00\/00\/0000") and TEXT("01232009","00\/00\/0000")
both return "01/23/2009".


That makes it even better. As long as the number format is mddyyyy or
mmddyyyy:

=--TEXT(B4,"00\/00\/0000")


--
Biff
Microsoft Excel MVP



TagTech

=IF(test,true,false) only ever returns "true"?
 
Thanks. Never would have seen that. Like a missing period in COBOL. Used
"extra" brackets to try to separate code so I could find my mistake, but as I
said, I never would have seen that it should be LEN(B4)=8 instead of
LEN(B4=8). Preciate!

"Niek Otten" wrote:

You have the bracker for the LEN function in the wrong place.
Try this:
=IF( (LEN(B4)=8),(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"&
RIGHT(B4,4)),(LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)) )
There are still more brackets than necessary, BTW

--
Kind regards,

Niek Otten
Microsoft MVP - Excel

"TagTech" wrote in message
...
A little help please. I have data imported to Excel from a legacy app.
Some
DOB is a length of 7, e.g. 1012008 and some DOB is a length of 8, e.g.
11012008. Neither formula following is working for me:


=IF( (LEN(B4=8)),(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"& RIGHT(B4,4)),
(LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)) )


=IF( (LEN(B4=7)), (LEFT(B4,1) &"/"& MID(B4,2,2) &"/"& RIGHT(B4,4)),
(LEFT(B4,2) &"/"& MID(B4,3,2) &"/"& RIGHT(B4,4)) )

If I test for a length of eight and the date is 11012008 I get 11/01/2008,
which is good. However, if the date is 1012008 I get 10/12/2008, which is
not good.

If I test for a length of seven and the date is 11012008 I get 1/10/2008,
which is not good. However if the date is 1012008 I get 1/01/2008, which
is
good.

It seems I only ever get the "true" formulation. Any thoughts? Thanks.




All times are GMT +1. The time now is 05:30 PM.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
ExcelBanter.com