Using Text Rotation to Create Custom Table Headers in Google Sheets

The text rotation feature in Google Sheets rotates text in a cell, so it can be angled in any direction.

Find text rotation under the menu: Format > Rotation

Text Rotation Menu

It can also be accessed by a button on the far right side of the toolbar:

Text Rotation Toolbar

There are six preset modes as well as a custom angle option:

Text Rotation In Google Sheets

Text Rotation Options

  • None – no text rotation
  • Tilt up – angle text upwards at 45°
  • Tilt down – angle text downwards at 45°
  • Stack vertically – stack the letters on top of each other vertically
  • Rotate up – rotate the text 90° up
  • Rotate down – rotate the text 90° down
  • Custom angle – select an angle or type a custom angle

Rotated Text In Google Sheets

Example 1: Text Rotation Headings

The most straightforward use case is to rotate headers upwards to save space and avoid wide columns:

Text Rotation Header Row

Example 2: Text Rotation Sidebar

Add flourishes to your dashboards in Google Sheets by using text rotation to create branded sidebars:

Sidebar Rotated Text

This is achieved by merging cells, rotating text upwards inside the merged cell, adding a background color to column C, and then making B, C, and D narrow.

Example 3: Text Rotation to Subdivide Cell

This example was prompted by a question from a reader:

How do I make a diagonal line to split a cell, so that I can enter text into two triangular subdivisions?

Although you can’t split a cell explicitly, you can use rotated text to achieve this effect.

This solution featured as tip 38 of my Google Sheets newsletter.

Here’s an example showing a diagonal line to separate the row and column heading labels in a single cell:

Text Rotation To Subdivide Cell

To achieve this, use the CHAR function, the REPT function, and rotate the text.

The formula is:

="Sales"&CHAR(10)&REPT(CHAR(8212),9)&CHAR(10)&"Regions"

How does this work?

This function creates a line break:

CHAR(10) 

And this one creates the em-dash character:

CHAR(8212) 

Finally, the REPT function repeats the CHAR function 9 times, i.e. it creates 9 em-dash characters, which gives the appearance of the line:

REPT(CHAR(8212),9)

To finish, center align the cell and then rotate the text downwards using a custom angle around -40°.

Caveat

You should only use this method for formatting and not for analysis.

Use it for presentation tables only, because it makes dataset column headings a mess for analysis work, like pivot tables or charts. Generally, labels in column A need their own column heading.

Alternative Way To Subdivide A Cell

Alternative Heading Example

Here, the formula is:

="Sales "&CHAR(8594)&CHAR(10)&"Regions "&CHAR(8595)

This formula uses three different CHAR functions to add context and force a line break.

  • CHAR(8594) produces the right arrow
  • CHAR(10) produces a carriage return (new line)
  • CHAR(8595) produces a down arrow

It makes the table much easier to interpret and reduces the chance of a user misreading the data.

This example is taken from the customer analysis section of my Data Analysis with Google Sheets course.

More Table Formatting Tips

For more tips on formatting tables in Google Sheets, check out this post: How To Make a Table in Google Sheets, and Make It Look Great

Text Rotation Template

Click here to open a view-only copy >>

Feel free to make a copy: File > Make a copy…

However, if you can’t access the template, it might be because of your organization’s Google Workspace settings.

In this case, right-click the link to open it in an Incognito window to view it.

One thought on “Using Text Rotation to Create Custom Table Headers in Google Sheets”

  1. How can I draw a line or better yet an arrow in a cell based on an angle value in a reference cell? And if possible is it possible to lock the start point of the line?

Leave a Reply

Your email address will not be published. Required fields are marked *