Written by Allen Wyatt (last updated June 15, 2019)
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.
Solve Real Business Problems Master business modeling and analysis techniques with Excel and transform data into bottom-line results. This hands-on, scenario-focused guide shows you how to use the latest Excel tools to integrate data from multiple tables. Check out Microsoft Excel 2013 Data Analysis and Business Modeling today!
When entering information into a worksheet, you may want it to always be in a correctly sorted order. Excel allows you to ...
Discover MoreWhen you sort your data, you should always check to see if the sort was done correctly. What if sorting messes up ...
Discover MoreWant to ignore some characters at the beginning of each cell when sorting? The easiest way is to simply create other ...
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