Please Note: This article is written for users of the following Microsoft Excel versions: 2007, 2010, 2013, 2016, 2019, and Excel in Microsoft 365. If you are using an earlier version (Excel 2003 or earlier), this tip may not work for you. For a version of this tip written specifically for earlier versions of Excel, click here: Sorting Letters and Numbers.
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!
When entering information into a worksheet, you may want it to always be in a correctly sorted order. Excel allows you to ...
Discover MoreNeed to do the same sorting operation over and over again? Excel doesn't provide a way to save your sorting criteria, but ...
Discover MoreSorting information in Excel is a common task. Sorting information that isn't in the primary order that you need can be a ...
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 © 2024 Sharon Parq Associates, Inc.
Comments