Google Sheets Tips

CHAR function in Google Sheets: list of codes and examples

CHAR converts a Unicode number into its character: CHAR(10003) is a check mark, CHAR(10) a line break. This guide gives a list of the codes used most often in spreadsheets, a formula that builds your own list, and examples: line breaks in a cell, arrows for trends, star ratings, and cleaning imported text.

Google Sheets TipsVadym Kramarenko11 min read

CHAR function in Google Sheets: list of codes and examples

The CHAR function returns the character that belongs to a number in the Unicode table:

=CHAR(10003)

The formula returns ✓. CHAR(65) is the letter A, CHAR(10) a line break, CHAR(9733) a star. The function takes any whole number from 1 to 1,114,111, so it reaches far beyond the 255 codes of the old ASCII tables: arrows, check marks, currency signs and emoji are all available.

List of CHAR codes

List of CHAR codes

The codes used most often in spreadsheets. Every result can be copied from the table or produced with the formula next to it.

Line breaks, spaces and punctuation

Formula Result Name
CHAR(10) (line break) Line break inside a cell
CHAR(9) (tab) Tab
CHAR(32) (space) Space
CHAR(160) (space) Non-breaking space, common in text copied from web pages
CHAR(34) " Double quote, for use inside a formula
CHAR(8226) • Bullet
CHAR(8211) – En dash
CHAR(8230) … Ellipsis

Check marks and status signs

Formula Result Name
CHAR(10003) ✓ Check mark
CHAR(10004) ✔ Heavy check mark
CHAR(10007) ✗ Cross
CHAR(10060) ❌ Red cross
CHAR(9989) ✅ Green check
CHAR(9745) ☑ Checked box
CHAR(9744) ☐ Empty box
CHAR(9888) ⚠ Warning sign
CHAR(128308) 🔴 Red circle
CHAR(128994) 🟢 Green circle

Arrows, stars and shapes

Formula Result Name
CHAR(8593) ↑ Arrow up
CHAR(8595) ↓ Arrow down
CHAR(8594) → Arrow right
CHAR(8592) ← Arrow left
CHAR(8596) ↔ Arrow left and right
CHAR(9650) ▲ Triangle up
CHAR(9660) ▼ Triangle down
CHAR(9733) ★ Filled star
CHAR(9734) ☆ Empty star
CHAR(9679) ● Filled circle
CHAR(9675) ○ Empty circle
CHAR(9632) ■ Filled square
CHAR(9608) █ Full block, for bars

Math and greek letters

Formula Result Name
CHAR(176) ° Degree
CHAR(177) ± Plus-minus
CHAR(215) × Multiplication
CHAR(247) ÷ Division
CHAR(8800) ≠ Not equal
CHAR(8776) ≈ Approximately equal
CHAR(8804) ≤ Less than or equal
CHAR(8805) ≥ Greater than or equal
CHAR(8734) ∞ Infinity
CHAR(8730) √ Square root
CHAR(931) Σ Sigma
CHAR(916) Δ Delta
CHAR(960) π Pi
CHAR(189) ½ One half
CHAR(8240) ‰ Per mille
Formula Result Name
CHAR(8364) € Euro
CHAR(163) £ Pound
CHAR(165) ¥ Yen
CHAR(162) ¢ Cent
CHAR(8383) ₿ Bitcoin
CHAR(169) © Copyright
CHAR(174) ® Registered
CHAR(8482) ™ Trademark
CHAR(185) ¹ Superscript 1
CHAR(178) ² Superscript 2
CHAR(179) ³ Superscript 3
CHAR(8320) ₀ Subscript 0; the digits up to 9 follow, to 8329
CHAR(128512) 😀 Grinning face
CHAR(128077) 👍 Thumbs up

Letters and digits follow the ASCII order: 48 to 57 are the digits 0 to 9, 65 to 90 the capital letters A to Z, 97 to 122 the small letters a to z.

Build your own list

To browse a part of the Unicode table, generate the numbers with SEQUENCE and pass them to CHAR:

=ARRAYFORMULA({SEQUENCE(8,1,9728), CHAR(SEQUENCE(8,1,9728))})

Google Sheets with the formula =ARRAYFORMULA({SEQUENCE(8,1,9728), CHAR(SEQUENCE(8,1,9728))}) returning the codes 9728 to 9735 in column B and their characters, among them a sun, a cloud and two stars, in column C

The first number is how many rows to list, the last one the code to start from. Change 8 to 100 and 9728 to 8592 to see a hundred arrows.

Find the code of a character

The reverse function is UNICODE:

=UNICODE("€")

It returns 8364. Paste any character between the quotes, or point the formula to a cell: for a longer text it returns the code of the first character. CODE does the same job.

CHAR syntax

CHAR syntax

=CHAR(table_number)

  • table_number: the number of the character in the Unicode table, typed in or taken from a cell.

A decimal is cut to a whole number: CHAR(65.9) returns A. Whether a character is displayed depends on the font and the device; a code with no glyph shows as an empty box.

Google Sheets with codes 128512 to 128516 in column C and the formula =CHAR(128512) returning emoji faces in column E

The code can sit in a cell, so one formula covers a whole column:

=CHAR(C3)

Google Sheets with the codes 8593 and 8595 in column C and the formula =CHAR(C3) returning up and down arrows

Google Sheets with the codes 36, 8364, 163, 165 and 3647 in column D and the formula =CHAR(D3) returning currency symbols

Google Sheets with the formula =CHAR(931) returning the Greek letter sigma

The Turning Point

OWOX Data Marts

See your first report built in real time. 15 minutes.

  1. Connect your data warehouse
  2. Pick your metrics
  3. Get a live Google Sheets report

In the time it takes to write a ticket. Then imagine never writing that ticket again.

Book a Demo

We'll use your actual use case

Line breaks with CHAR(10)

Line breaks with CHAR(10)

CHAR(10) starts a new line inside the cell. It is the only way to do so from a formula:

="James builds strong client loyalty" & CHAR(10) & "by always exceeding expectations."

Google Sheets with a formula that joins two texts with CHAR(10), shown on two lines in one cell

The same character works as a separator in JOIN and TEXTJOIN, which turns a column into a list inside one cell:

=JOIN(CHAR(10), B3:B7)

Google Sheets with the formula =JOIN(CHAR(10), B3:B7) returning five employee names on five lines in one cell

And in the other direction, to remove or use line breaks that came with the data:

  • =SUBSTITUTE(A2, CHAR(10), " ") replaces every line break with a space.
  • =SPLIT(A2, CHAR(10)) puts each line into its own cell.

More on both in the guides to JOIN and TEXTJOIN and SUBSTITUTE. Long lines inside the cell follow the cell’s text wrapping setting.

A header with two labels

="Performance % (month) " & CHAR(8594) & CHAR(10) & "Career Stage " & CHAR(8595)

Google Sheets with a header cell on two lines: Performance % (month) with an arrow right and Career Stage with an arrow down

One cell names both the columns to its right and the rows below it.

Symbols next to a value

Symbols next to a value

Join CHAR to text or to a cell with an ampersand:

=B3 & CHAR(C3)

Google Sheets with employee names in column B, emoji codes in column C and a formula returning each name followed by its emoji

=CHAR(C3) & " " & CHAR(D3)

Google Sheets with arrow codes in column C and star codes in column D and the formula =CHAR(C3) & “ “ & CHAR(D3) returning an arrow and a star in one cell

Trend arrows

Let IF choose the symbol, so that it changes with the data:

=IF(C3 > B3, CHAR(9650), IF(C3 < B3, CHAR(9660), CHAR(8211)))

A triangle up for growth, a triangle down for decline, a dash for no change. Add color with conditional formatting on the same condition.

Superscripts and subscripts

Unicode has ready-made small digits. Superscript 1, 2 and 3 are the codes 185, 178 and 179; subscript digits run from 8320 to 8329.

="Shift" & CHAR(185)

Google Sheets with the codes 185, 178 and 179 in column C and the formula =“Shift” & CHAR(185) returning Shift with a superscript digit

="Level" & CHAR(8324)

Google Sheets with the codes 8321 to 8324 in column C and the formula =“Level” & CHAR(8324) returning Level with a subscript digit

Quotes inside a formula

A double quote ends a text in a formula, so a quote that belongs to the text is written as CHAR(34):

="The status is " & CHAR(34) & B2 & CHAR(34)

CHAR with other functions

CHAR with other functions

REPT: star ratings and bars

REPT repeats a character a given number of times:

=REPT(CHAR(9733), C3)

Google Sheets with scores from 3 to 5 in column C and the formula =REPT(CHAR(9733), C3) returning the same number of stars

For a fixed scale, fill the rest with empty stars:

=REPT(CHAR(9733), C3) & REPT(CHAR(9734), 5 - C3)

The full block makes a bar inside a cell: =REPT(CHAR(9608), B2/10) draws seven blocks for 70. For real charts in a cell, see SPARKLINE.

SEQUENCE: a run of characters

=ARRAYFORMULA(B3:B7 & " " & CHAR(128512 + SEQUENCE(COUNTA(B3:B7), 1, 0, 1)) & " - " & C3:C7)

Google Sheets with a formula that joins each employee name, an emoji whose code grows by one per row, and a description

SEQUENCE returns 0, 1, 2 and so on, one number for each name; added to 128512 it gives a different emoji per row. The same idea returns the alphabet: =ARRAYFORMULA(CHAR(SEQUENCE(26, 1, 65))).

QUERY: filter by a symbol

A symbol can be a filter value. Building it with CHAR avoids pasting it into the query text:

=QUERY(B2:C7, "SELECT B, C WHERE C = '" & CHAR(10003) & "'", 1)

Google Sheets with a renewal status column of check marks and crosses and a QUERY formula returning only the rows with a check mark

The same works in COUNTIF: =COUNTIF(C3:C7, CHAR(10003)) counts the check marks.

SUBSTITUTE: clean imported text

Text copied from web pages often holds non-breaking spaces, CHAR(160), which look like spaces but are not removed by TRIM and break lookups. Replace them first:

=TRIM(SUBSTITUTE(A2, CHAR(160), " "))

Errors with CHAR

Errors with CHAR

⚠️ Error: #NUM!

✅ Solution: The number is outside the table: 0, a negative number, or more than 1,114,111. An empty cell counts as 0, so =CHAR(C3) on an empty C3 returns #NUM! as well. Wrap it: =IF(C3="", "", CHAR(C3)).

⚠️ Error: #VALUE!

✅ Solution: The argument is text. CHAR(“A”) does not work; to go from a character to its number use UNICODE(“A”).

⚠️ Error: An empty box or a question mark appears.

✅ Solution: The code is valid, but the font has no glyph for it. Try a neighbouring code or another font, and check the result on the devices your readers use: emoji look different on each system.

⚠️ Error: LEN returns 2 for one emoji.

✅ Solution: Characters above code 65,535, which includes most emoji, are stored as two units, and LEN counts both. Keep this in mind when cutting text with LEFT or MID.

⚠️ Error: The line break from CHAR(10) is lost in an export.

✅ Solution: A line break inside a cell is kept in the sheet, but a CSV export wraps such a cell in quotes, and some tools read it as a new row. Replace the line breaks before exporting.

Related Google Sheets functions

A symbol is a label for a number that has to be right

A symbol is a label for a number that has to be right

A green check or a triangle pointing up is read faster than any number, which is exactly why it has to rest on current data. The arrow from the IF formula above compares two cells; if those cells were pasted from an export a month ago, the report shows last month with full confidence.

The OWOX Data Marts extension for Google Sheets covers that half. A data analyst publishes a data mart (a table or an SQL query in your data warehouse) and makes it available for reports. In Sheets you open the extension, pick the data mart, tick the columns you want and run it. The rows land in a tab, ready for your formulas.

Google Sheets with the OWOX Data Marts extension open beside an ad spend table: the Unified Ad Spend data mart, nine of fourteen columns ticked and a Save & Run button – the rows in the sheet come from a governed data mart, not a pasted export

What changes for the person who maintains the sheet:

  • Refresh replaces re-export. Refresh current report in the extension menu re-runs the same pull, and a scheduled refresh keeps the tab current without anyone touching it.
  • The source is written on the sheet. The header cell of an imported tab carries a note with the data mart it came from, the time of the import and a link to the report.
  • No SQL and no warehouse access needed. The analyst decides which data marts and columns are available. You choose from that list.

The extension does not write or change the analyst’s SQL. The symbols your formulas draw then follow the refreshed numbers, not the last manual paste. The extension comes with the OWOX Cloud plans of OWOX Data Marts; spreadsheet reporting describes both ways data reaches a sheet.

Your New Normal

Turn your data into decisions.

Governed data marts give you the clean foundation ML needs to actually work.

  • No AI hallucinations
  • Analyst-governed definitions
  • Every number traces to SQL
Get started free

FAQ

Frequently Asked Questions

What are some common use cases for the CHAR function in Google Sheets?

Common use cases for the CHAR function in Google Sheets include inserting special symbols, emojis, or non-printable characters like line breaks (CHAR(10)), adding visual indicators for data trends, converting Unicode values into readable characters, and enhancing text formatting for better data presentation and organization.

Can I combine the CHAR function with other text functions?

Yes, you can combine the CHAR function with other text functions like CONCATENATE, LEFT, RIGHT, MID, or ARRAYFORMULA in Google Sheets. This allows you to create dynamic text strings, format data, or insert special characters seamlessly within more complex formulas for efficient text manipulation.

Is the CHAR function compatible with all operating systems and devices?

The function works the same everywhere Google Sheets runs, and the same code always returns the same character. How the character looks depends on the font and the device: emoji are drawn differently on each system, and a character the font does not have shows as an empty box. Check symbols on the devices your readers use.

How do I find the Unicode value for a specific character?

To find the Unicode value for a specific character, you can use the UNICODE function in Google Sheets. Simply enter the character within the function, like =UNICODE("A"), and it will return the Unicode value for that character.

Can the CHAR function generate special symbols or emojis?

Yes. CHAR takes any Unicode number from 1 to 1,114,111, so it returns symbols and emoji as well as letters: CHAR(10003) is a check mark, CHAR(9733) a star, CHAR(128512) a grinning face. To find the number of a character you already have, use UNICODE, for example UNICODE("€") returns 8364.

How do I use the CHAR function to insert line breaks in Google Sheets?

To insert line breaks using the CHAR function in Google Sheets, use the formula ="Text1" & CHAR(10) & "Text2". Replace "Text1" and "Text2" with your text. CHAR(10) is the line feed character that creates the line break between the two segments of text.

How do I create a star rating system in Google Sheets?

To create a star rating system, you can use the REPT function combined with the CHAR function. For example, =REPT(CHAR(9733), A1) will display filled stars based on the value in cell A1. For half stars, you can adjust the formula to include a different character for half ratings.

What is the CHAR function used for in Google Sheets?

The CHAR function in Google Sheets converts a numeric Unicode code into the corresponding character. Its syntax is =CHAR(number), where number is the Unicode value. This function is useful for inserting special characters, symbols, or emojis into your text based on their Unicode representation.

Who wrote this

Vadym Kramarenko

Vadym Kramarenko Growth Marketing Manager

Vadym Kramarenko is a Growth Marketing Manager at OWOX, where he drives user acquisition and product-led growth strategies. He hosts the OWOX podcast, interviewing analytics professionals about data-driven marketing, attribution, and reporting best practices. Vadym specializes in turning complex analytics concepts into practical, actionable marketing frameworks.