Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to Reverse Text in Excel without VBA

587 views
Skip to first unread message

Sheikh Saadi

unread,
Sep 2, 2009, 4:56:01 PM9/2/09
to
Hi,

i need to reverce text written in a cell without using VBA. I know how to
write a simple VBA function to do this job, but wanted to know if there is
any function available to do this, or even a combination of functions if
there are any.

A quick response would be much appriciated...

thanks...
--
Sheikh Saadi

Sean Timmons

unread,
Sep 2, 2009, 5:00:01 PM9/2/09
to
Reverse as in take each character and put in opposite order So abc would be
cba?

Sheikh Saadi

unread,
Sep 2, 2009, 5:13:01 PM9/2/09
to
that's corrat... excatly like that...

Example:
Hello Abc --->>> cbA olleH

is there any function or combination of funcitons?

--
Sheikh Saadi

Pete_UK

unread,
Sep 2, 2009, 5:55:09 PM9/2/09
to
Well, this is clumsy, but it will do it for up to 12 characters:

=IF(LEN(A1)<1,"",MID(A1,LEN(A1),1))&
IF(LEN(A1)<2,"",MID(A1,LEN(A1)-1,1))&
IF(LEN(A1)<3,"",MID(A1,LEN(A1)-2,1))&
IF(LEN(A1)<4,"",MID(A1,LEN(A1)-3,1))&
IF(LEN(A1)<5,"",MID(A1,LEN(A1)-4,1))&
IF(LEN(A1)<6,"",MID(A1,LEN(A1)-5,1))&
IF(LEN(A1)<7,"",MID(A1,LEN(A1)-6,1))&
IF(LEN(A1)<8,"",MID(A1,LEN(A1)-7,1))&
IF(LEN(A1)<9,"",MID(A1,LEN(A1)-8,1))&
IF(LEN(A1)<10,"",MID(A1,LEN(A1)-9,1))&
IF(LEN(A1)<11,"",MID(A1,LEN(A1)-10,1))&
IF(LEN(A1)<12,"",MID(A1,LEN(A1)-11,1))

I've manually split it so that you can see how to extend it for more
characters, but it is all one formula, assuming the text to reverse is
in A1.

Hope this helps.

Pete

> > > Sheikh Saadi- Hide quoted text -
>
> - Show quoted text -

Harlan Grove

unread,
Sep 2, 2009, 6:11:25 PM9/2/09
to
Sheikh Saadi <imsa...@hotmail.com> wrote...

>that's corrat... excatly like that...
>
>Example:
>Hello Abc --->>>   cbA olleH
>
>is there any function or combination of funcitons?

Not generally, no. Brute force is the only thing that comes close.

With FOOBAR in cell X99, the formula

=LEFT(RIGHT(X99,1)&LEFT(RIGHT(X99,2))&LEFT(RIGHT(X99,3))
&LEFT(RIGHT(X99,4))&LEFT(RIGHT(X99,5))&LEFT(RIGHT(X99,6))
&LEFT(RIGHT(X99,7))&LEFT(RIGHT(X99,8))&LEFT(RIGHT(X99,9))
&LEFT(RIGHT(X99,10))&LEFT(RIGHT(X99,11))&LEFT(RIGHT(X99,12))
&LEFT(RIGHT(X99,13))&LEFT(RIGHT(X99,14))&LEFT(RIGHT(X99,15))
&LEFT(RIGHT(X99,16)),LEN(X99))

returns RABOOF. You could extend this further, but it'll run up
against the formula character limit, which means you can't reliably
reverse strings longer than 50 characters or so.

T. Valko

unread,
Sep 2, 2009, 6:21:56 PM9/2/09
to
There is an add-in available that has functions that will do this.

However, if you go to the trouble of installing an add-in you may as well
use your own UDF.

--
Biff
Microsoft Excel MVP


"Sheikh Saadi" <ims...@hotmail.com> wrote in message
news:8EE52FEC-E764-4A8E...@microsoft.com...

Sheikh Saadi

unread,
Sep 2, 2009, 6:38:01 PM9/2/09
to
Thanks Pete, but I know this workaounrd. also, this would not work as i dont
know if the characters are exactly 12 or less everytime.

As far as i found out, there is no build in function for this task.

Thanks for your response though.

--
Sheikh Saadi

Pete_UK

unread,
Sep 2, 2009, 6:56:45 PM9/2/09
to
I posted it so that you can easily see the structure of the formula,
to extend it if you need to. Just keep copying the IFs and change the
numbers in sequence. This will do the complete alphabet:

=IF(LEN(A1)<1,"",MID(A1,LEN(A1),1))&IF(LEN(A1)<2,"",MID(A1,LEN
(A1)-1,1))&IF(LEN(A1)<3,"",MID(A1,LEN(A1)-2,1))&IF(LEN(A1)<4,"",MID
(A1,LEN(A1)-3,1))&IF(LEN(A1)<5,"",MID(A1,LEN(A1)-4,1))&IF(LEN(A1)
<6,"",MID(A1,LEN(A1)-5,1))&IF(LEN(A1)<7,"",MID(A1,LEN(A1)-6,1))&IF(LEN
(A1)<8,"",MID(A1,LEN(A1)-7,1))&IF(LEN(A1)<9,"",MID(A1,LEN(A1)-8,1))&IF
(LEN(A1)<10,"",MID(A1,LEN(A1)-9,1))&IF(LEN(A1)<11,"",MID(A1,LEN
(A1)-10,1))&IF(LEN(A1)<12,"",MID(A1,LEN(A1)-11,1))&IF(LEN(A1)<13,"",MID
(A1,LEN(A1)-12,1))&IF(LEN(A1)<14,"",MID(A1,LEN(A1)-13,1))&IF(LEN(A1)
<15,"",MID(A1,LEN(A1)-14,1))&IF(LEN(A1)<16,"",MID(A1,LEN(A1)-15,1))&IF
(LEN(A1)<17,"",MID(A1,LEN(A1)-16,1))&IF(LEN(A1)<18,"",MID(A1,LEN
(A1)-17,1))&IF(LEN(A1)<19,"",MID(A1,LEN(A1)-18,1))&IF(LEN(A1)<20,"",MID
(A1,LEN(A1)-19,1))&IF(LEN(A1)<21,"",MID(A1,LEN(A1)-20,1))&IF(LEN(A1)
<22,"",MID(A1,LEN(A1)-21,1))&IF(LEN(A1)<23,"",MID(A1,LEN(A1)-22,1))&IF
(LEN(A1)<24,"",MID(A1,LEN(A1)-23,1))&IF(LEN(A1)<25,"",MID(A1,LEN
(A1)-24,1))&IF(LEN(A1)<26,"",MID(A1,LEN(A1)-25,1))

So that:

abcdefghijklmnopqrstuvwxyz

in A1 becomes:

zyxwvutsrqponmlkjihgfedcba

But it's not very nice !!

Pete

Ashish Mathur

unread,
Sep 2, 2009, 7:57:12 PM9/2/09
to
Hi,

You may download and install the addin from
http://xcell05.free.fr/morefunc/english/index.htm and then use the
TEXTREVERSE(cell_ref) function

--
Regards,

Ashish Mathur
Microsoft Excel MVP
www.ashishmathur.com

"Sheikh Saadi" <ims...@hotmail.com> wrote in message
news:8EE52FEC-E764-4A8E...@microsoft.com...

p45cal

unread,
Sep 2, 2009, 8:19:10 PM9/2/09
to

The likes of
MID($I$22,{4,3,2,1},1)
produces an array of characters being the reverse of the 4 characters
in I22.
If only I could concatenate them (*concatenate* is not an array-aware
function), I'd then look at getting the *{1,2,3,4}* from the likes of
C*olumn(A:D)* or *Row(1:4)* within the formula.

BTW:
Very simple UDF isFunction ReverseText(myText)
ReverseText = StrReverse(myText)
End Functionused
=REVERSETEXT(I22)
in a worksheet.


--
p45cal

*p45cal*
------------------------------------------------------------------------
p45cal's Profile: http://www.thecodecage.com/forumz/member.php?userid=558
View this thread: http://www.thecodecage.com/forumz/showthread.php?t=131028

0 new messages