Sort all values in a column with Alphanumeric without adding zeros

sampathmeka

New Member
Joined
Feb 2, 2016
Messages
39
Hi All,

Below is the example data i need to sort alphanumeric values.
C1
C100
C1000
C2
C23
C3
C31
C4
C8
C9
C99
A10
A11
A12

The output should be
A10
A11
A12
C1
C2
C3
C4
C8
C9
C23
C31
C99
C100
C1000


Thanks & Regards,
Sampath
 

Excel Facts

Which lookup functions find a value equal or greater than the lookup value?
MATCH uses -1 to find larger value (lookup table must be sorted ZA). XLOOKUP uses 1 to find values greater and does not need to be sorted.
with Power Query
Rich (BB code):
let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    SplitPos = Table.SplitColumn(Source, "raw", Splitter.SplitTextByPositions({0, 1}, false), {"raw.1", "raw.2"}),
    Type = Table.TransformColumnTypes(SplitPos,{{"raw.1", type text}, {"raw.2", Int64.Type}}),
    Sort = Table.Sort(Type,{{"raw.1", Order.Ascending}, {"raw.2", Order.Ascending}}),
    Join = Table.CombineColumns(Table.TransformColumnTypes(Sort, {{"raw.2", type text}}, "en-GB"),{"raw.1", "raw.2"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"raw")
in
    Join
rawraw
C1A10
C100A11
C1000A12
C2C1
C23C2
C3C3
C31C4
C4C8
C8C9
C9C23
C99C31
A10C99
A11C100
A12C1000
 
Upvote 0
This can be done with the following formula as well

assuming the values are in range A1:A14
=SORTBY(A1:A14,LEFT(A1:A14,1),1,--RIGHT(A1:A14,LEN(A1:A14)-1),1)

Regards
 
Upvote 0
This can be done with the following formula as well

assuming the values are in range A1:A14
=SORTBY(A1:A14,LEFT(A1:A14,1),1,--RIGHT(A1:A14,LEN(A1:A14)-1),1)

Regards

I tried with the above formula but not acheived.Kindly help me.
Thanks for reply Mamady!!
 

Attachments

  • excel-error.jpg
    excel-error.jpg
    218.2 KB · Views: 19
Upvote 0
sampathmeka,

What version of Excel do you have? It would be helpful if you would update your user profile to show that. And to clarify your question, will there always be just 1 letter in front? Will case matter? How many digits can the number be? Are you looking for a formula or a macro? Depending on the answer to these questions, you could make a couple of helper columns as shown below, and then just use the built-in Excel sort on columns C and D.

Book1
ABCD
1A10A10
2A11A11
3A12A12
4C1C1
5C2C2
6C3C3
7C4C4
8C8C8
9C9C9
10C23C23
11C31C31
12C99C99
13C100C100
14C1000C1000
Sheet2
Cell Formulas
RangeFormula
C1:C14C1=LEFT(A1)
D1:D14D1=MID(A1,2,9)+0
 
Upvote 0
Out of curosity i did this. I don't know how to shorten it.

Sorting Data.xlsx
ABCDEFGHIJKLMNO
1raw
2B1
3C100
4C1000
5C2
6B2
7C3
8C1
9C4A1A2A3A4A8A9A11A12A99A100A1000
10C8B1B2B3B4B8B9B11B12B99B100B1000
11C9C1C2C3C4C8C9C11C12C99C100C1000
12C99
13A1000
14A11
15A12A11
16A12
17A1000
18B1
19B2
20C1
21C2
22C3
23C4
24C8
25C9
26C99
27C100
28C1000
Sheet1
Cell Formulas
RangeFormula
E9:O11E9=INDEX(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),"")))))),MATCH(ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),"")))),MMULT(--(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),""))))))>TRANSPOSE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),"")))))))),ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),""))))^0)+1,0))&TRANSPOSE(INDEX((INDEX(MID($A$2:$A$15,2,1000)+0,AGGREGATE(15,6,(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0)*ROW($A$1:$A$20),ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,""))))))),MATCH(ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,"")))),MMULT(--(INDEX(MID($A$2:$A$15,2,1000)+0,AGGREGATE(15,6,(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0)*ROW($A$1:$A$20),ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,""))))))>TRANSPOSE(INDEX(MID($A$2:$A$15,2,1000)+0,AGGREGATE(15,6,(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0)*ROW($A$1:$A$20),ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,"")))))))),ROW(INDIRECT("A1:A"&COUNT((INDEX(MID($A$2:$A$15,2,1000)+0,AGGREGATE(15,6,(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0)*ROW($A$1:$A$20),ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,""))))))))))^0)+1,0)))
E15:E28E15=IFERROR(INDIRECT(TEXT(SMALL(IFERROR(((MATCH(INDEX(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),"")))))),MATCH(ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),"")))),MMULT(--(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),""))))))>TRANSPOSE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),"")))))))),ROW(INDIRECT("A1:A"&COUNT(IFERROR(CODE(INDEX(LEFT($A$2:$A$15,1),AGGREGATE(15,6,FREQUENCY(MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0),MATCH(LEFT($A$2:$A$15,1),LEFT($A$2:$A$15,1),0))^0*ROW($A$1:$A$15),ROW($A$1:$A$15)))),""))))^0)+1,0))&TRANSPOSE(INDEX((INDEX(MID($A$2:$A$15,2,1000)+0,AGGREGATE(15,6,(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0)*ROW($A$1:$A$20),ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,""))))))),MATCH(ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,"")))),MMULT(--(INDEX(MID($A$2:$A$15,2,1000)+0,AGGREGATE(15,6,(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0)*ROW($A$1:$A$20),ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,""))))))>TRANSPOSE(INDEX(MID($A$2:$A$15,2,1000)+0,AGGREGATE(15,6,(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0)*ROW($A$1:$A$20),ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,"")))))))),ROW(INDIRECT("A1:A"&COUNT((INDEX(MID($A$2:$A$15,2,1000)+0,AGGREGATE(15,6,(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0)*ROW($A$1:$A$20),ROW(INDIRECT("A1:A"&COUNT(IFERROR(FREQUENCY(MID($A$2:$A$15,2,1000)+0,MID($A$2:$A$15,2,1000)+0)^0,""))))))))))^0)+1,0))),$A$2:$A$15,0)^0)*ROW($9:$11)*100)+COLUMN($E:$Q),FALSE),ROWS($A$1:A1)),"R00C00"),FALSE),"")
Dynamic array formulas.
 
Upvote 0

Forum statistics

Threads
1,214,830
Messages
6,121,835
Members
449,051
Latest member
excelquestion515

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top