On IBM compatible PC's, many characters that can't be typed on a keyboard can be entered by holding down the ALT key and then using the numeric keypad to type the ASCII or Unicode code for that character.
For example, holding down ALT and then typing 184 on the numeric keypad, prints ©, the copyright symbol.
Some History of ALT Codes
On IBM PC's you could hold down the ALT key then type a number on the numeric keypad. The software running on the PC would interpret this as a key being pressed on the keyboard and would attempt to display the character corresponding to the numeric code you typed.
The numeric codes and characters (or glyphs) were stored in a table called a Code Page. For early IBM PC's they used what was called Code Page 437 (CP437).
CP437 was the default for some countries, including the USA. To support accented characters Code Page 850 was created and this is the default in Western Europe, and some English speaking countries like the UK, Ireland, Canada and Australia.
Other languages and locales use different code pages.
CP437 and CP850 both contained 256 characters, with the first 128 being the same. Beyond that the characters differ.
When Windows came along the use of these ALT codes was so widespread that Microsoft decided to continue support for them in their software.
Windows began using a different code page, CP1252 which varied a little from CP437 and CP850, but still only had 256 characters.
In 1991 the Unicode Consortium was created to standardize the encoding, representation and handling of characters and symbols in all major operating systems and software.
Unicode allows for the encoding of over 1,000,000 characters/symbols, including letters and characters from many languages, mathematical symbols, geometric shapes, currency symbols and many others.
Using ALT Codes in Excel
To use an ALT code in Excel just hold down the ALT key then on the numeric keypad type the numeric code for the character you want.
For example, to display the registered trade mark symbol hold ALT and type 169.
Now, things can get a little confusing here so hang on.
Remember I said that Windows still supports the old CP437 and CP850 code pages from original IBM PC's? Excel also has support for the newer CP1252 code page used by Windows.
The first 128 characters in CP437, CP850 and CP1252 are the same. Once you get to characters beyond that you can encounter some differences.
If you want to use a character in the Windows CP1252 you precede your numeric code with a 0.
So typing ALT 0169 in Excel will actually give you a copyright symbol © rather than the ® you get if you type ALT 169.
By preceding the code with a 0, you tell Excel to load the character from the Windows CP1252 code page, not the old CP437/850 (whichever one your PC supports).
Download the Workbook With Examples and Codes
I've prepared a workbook with the numeric codes and corresponding characters for CP850 and CP1252, codes 1 to 255.
The workbook also has sheets with codes for some currency symbols, superscript and subscripts characters and the Greek alphabet. Useful if you are doing some maths ☺.
That smiley face was ALT1 by the way.
Enter your email address below to download the sample workbook.
The CHAR() function does the same thing as typing an ALT code, and uses the characters from Windows CP1252, but you don't need to use a preceding 0 like you do if you type the code.
CHAR() only works with numbers from 32 to 255.
CharMap (Character Map)
Another alternative to typing the ALT code is to use the CharMap program in Windows. This allows you to find the numeric codes for characters and symbols.
In the image I've clicked on the symbol for micro, µ.>
On the bottom left of the image you can see U+00B5 which is the Unicode code for µ. On the bottom right of the image you can see the ALT code which is ALT+0181. Note the leading 0.
If you click on a character in CharMap you can click on the Select button (or double click with your mouse) and then on the Copy button, to copy the character into your clipboard. Use CTRL+V to paste it into Excel.
You can Select (or double click) a series of characters and then copy/paste the entire string too.
Using Unicode Characters
As Unicode supports so many characters, and much of the Unicode documentation shows character codes in hexadecimal, rather than using decimal we must enter the Unicode character codes in hex.
To do this in Windows we need to edit the registry.
WARNING : At this point I have to give you the usual warning about editing the registry and messing it up. The registry controls how your Windows PC operates and if you get it badly wrong, you can even prevent Windows from starting.
However as I'm sure you are pretty switched on, and the change that is needed is very minor, the risk of turning your PC into a large paperweight is low. That said, don't mess it up. You have been warned.
Editing the Registry
You need to run the Registry Editor, which in Windows 10 is Regedit. In other versions of Windows you may also have RegEdt32.
Once the Registry Editor is running, navigate your way to the folder called Input Method under HKEY_CURRENT_USER\Control Panel and with Input Method highlighted, right click on it and then choose New -> StringValue.
This creates a new entry on the right hand side of the Registry Editor window with the default name New Value #1. Just type over this and rename it EnableHexNumpad.
If you accidentally clicked off the new entry, or mistyped the name, just right click on it and choose Rename to rename it.
Next you have to give the entry a value. Double click on it and it will open up a small window where you can enter a value into the Value data box.
Enter 1 and then click on OK.
Things should look like this now. Bear in mind the other entries in your Input Method folder may be different to mine. All we are working with here is the EnableHexNumpad entry.
If everything looks good, close the Registry Editor and reboot your PC. I'll still be here when you get back.
If you've rebooted your PC you can now use Unicode codes to enter characters. Remember that you need to enter these in hex. You can use the letters and numbers above the letters, or a combination of letters and numbers off the numeric keypad.
There is one other little thing to remember when using Unicode codes, you must precede the number with a +, so to display the symbol for a 3 dimensional angle, ⟀ , type ALT+27C0. Don't forget you actually have to type the + on the numeric keypad.
Unicode Website and Charts
The Unicode website lists all the characters it supports and you can download the various character/symbol charts in PDF format.