Sign up ×
Web Applications Stack Exchange is a question and answer site for power users of web applications. It's 100% free, no registration required.

Using MS Excel I can go to Format of the cell and choose the text orientation from horizontal to vertical fairly easy. How do I alter text orientation to vertical in Google Spreadsheet document?

share|improve this question

migrated from Aug 13 '11 at 0:50

This question came from our site for computer enthusiasts and power users.

Do you mean each letter remaining upright (but stacked in a column) or rotated 90 degree (so a word would 'read' sideways? –  pnuts Jul 4 '14 at 23:08

9 Answers 9

up vote 16 down vote accepted
  1. Select your cell
  2. Replace its content with the following formula:

    =ARRAYFORMULA(CONCATENATE((MID( "Text to become vertical"; ROW(INDIRECT("YY1:YY"&LEN( "Text to become vertical" ))); 1)&CHAR(10))))
  3. Repeat for each cell

Observation: make sure the text you want in your cell is the same in both instances of the formula.

From here:

share|improve this answer
Almost there but not quiet since I have to make it for each cell. I think I can live with this. :) Thanks –  Darius Aug 23 '11 at 23:22

You have do create it as a drawing. See here for more details on how to create word art.

share|improve this answer

Place the cursor between two characters, hold down the Ctrl key and press the Enter key to create a line break between the chars.

share|improve this answer

Go to "Insert-Image" and create a text box, rotate it and click save.

share|improve this answer

If a cell is narrow, then here is a quick and dirty approach.
Type the word into the spreadsheet cell with a space between each later:

V e r t i c a l T e x t

Then make the width of the column narrow so that text wrapping will stack the letters vertically.



This will only work if the cell has a width of one letter. If the cell is wider, then the formula approach is best.

share|improve this answer

Here is a regex based solution:

   = regexreplace( "Text", "(.)", "$1"&char(10) )

Translation: Look in the input "Text", which could be a cell reference too, and find each instance of the regular expression ".", ie each single character. Store the matched character in a sub-expression so we can use it later by putting the regex within parentheses. Then replace each match with the string concatenation of itself via sub-expression reference "$1" along with the newline character, char(10).

share|improve this answer
That's a good one !! –  Jacob Jan Tuinstra Mar 18 '14 at 7:41
Why don't you throw in an ARRAYFORMULA version? –  Jacob Jan Tuinstra Mar 18 '14 at 7:45
Nice and short regex formula, I like it :) –  Darius Mar 18 '14 at 17:41
@JacobJanTuinstra Why would you need an ARRAYFORMULA version? –  Antonios Dec 11 '14 at 15:59

Until we have real vertical test, it's the simplest to leave the text orientation horizontal and spread each heading over several cells using the cell merge function, in a stairlike fashion:

Stairlike grid fashion

share|improve this answer

You can use Insert > Draw, create a text box and rotate it. Works for me.

share|improve this answer

You can combine a couple of the approaches suggested in some other answers by creating a custom function:

function VERTICAL_TEXT(text) {
  var vert_text = text.replace(/(.)/g,"$1\n");
  return vert_text;

and then using it in the cell:

=VERTICAL_TEXT("cell contents")
share|improve this answer
It does through in an extra "\n". –  Jacob Jan Tuinstra Aug 12 at 14:42

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.