Written by Allen Wyatt (last updated June 21, 2023)
This tip applies to Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365
Let's say that you have a worksheet in which a particular column, for instance column C, contains entries such as F1, F2, F3, etc., all the way up to F149. If you need to sort the data in the worksheet based on the contents of this column, the results may disappoint you. Because the first character in each cell is a letter, Excel sorts the column as text.
The upshot is that the cells are sorted in the order F1, F10, F100, F101, F102, etc. In this arrangement, F2 doesn't show up until the sixty-second entry in the sorted list. The reason this happens is because the cells are treated as text. As text, all the cells starting with F1 (there are 61 of them) come before the cells starting with F2.
The only way around this situation is to make sure that the numbers in the cells are front padded with zeros. In other words, you shouldn't use F1, but F001. You can use the following formula to convert the old format numbers to the new format (this formula assumes the data you are sorting begins in cell C1):
=LEFT(C1,1) & RIGHT("000" & RIGHT(C1,LEN(C1)-1),3)
Now, when you sort by the newly formatted entries, you get the desired results: F001, F002, F003, etc.
ExcelTips is your source for cost-effective Microsoft Excel training. This tip (9600) applies to Microsoft Excel 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365. You can find a version of this tip for the older menu interface of Excel here: Sorting Letters and Numbers.
Create Custom Apps with VBA! Discover how to extend the capabilities of Office 2013 (Word, Excel, PowerPoint, Outlook, and Access) with VBA programming, using it for writing macros, automating Office applications, and creating custom applications. Check out Mastering VBA for Office 2013 today!
If you use Excel to maintain a list of text strings (such as movie, book, or product titles), you may want the program to ...
Discover MoreWhen you sort information, Excel follows a set pattern of how your data is organized. This tip illuminates the burning ...
Discover MoreSorting ZIP Codes can be painless, provided all the codes are formatted the same. Here's how to do the sorting if you ...
Discover MoreFREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
2019-06-16 09:58:58
How about a simple macro? No padding.
Data in Col A, Col B no data
=========================================
Sub SortWithFirstLetter()
LastRow = Cells(Rows.Count, "A").End(xlUp).Row
FirstLetter = Left(Cells(1, 1), 1)
For i = 1 To LastRow
Cells(i, 2) = Mid(Cells(i, 1), 2)
Next
Range("B1:B" & LastRow).Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlNo
For i = 1 To LastRow
Cells(i, 1) = FirstLetter & Cells(i, 2)
Next
Columns("B:B").Select
Selection.ClearContents
End Sub
2019-06-16 08:33:56
Stephen Argent
Hi Allen,
There's another way around that particular problem:
Format the cells using the number format "F"0
That way you can enter the the numbers as numbers and the formatting will add the letter "F" in front, but Excel will still recognise them as numbers.
Best,
Stephen
2019-06-15 13:25:44
Willy Vanhaelen
This is a shorter formula:
=LEFT(C1,1)&RIGHT(1000+MID(C1,2,3),3)
Got a version of Excel that uses the ribbon interface (Excel 2007 or later)? This site is for you! If you use an earlier version of Excel, visit our ExcelTips site focusing on the menu interface.
FREE SERVICE: Get tips like this every week in ExcelTips, a free productivity newsletter. Enter your address and click "Subscribe."
Copyright © 2023 Sharon Parq Associates, Inc.
Comments