Sorting numbers in one cell while keeping attached text to it in another cell

%3CLINGO-SUB%20id%3D%22lingo-sub-1967708%22%20slang%3D%22en-US%22%3ESorting%20numbers%20in%20one%20cell%20while%20keeping%20attached%20text%20to%20it%20in%20another%20cell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1967708%22%20slang%3D%22en-US%22%3E%3CP%3ERaw%20data%20scanned%20into%20inventory%20in%20column%20A%20where%20Inventory%20numbers%20in%20Cells%201%2C3%2C6%20have%20to%20be%20sorted%20numerically%20from%20smallest%20to%20largest%20while%20keeping%20attached%20serial%20numbers%20in%20Cells%202%2C4%2C6%20to%20the%20sorted%20Cells%201%2C3%2C6%20as%20shown%20in%20Column%20B.%3C%2FP%3E%3CP%3EWhat's%20the%20fastest%20way%20to%20do%20this%20if%20I%20have%20hundreds%20of%20cells%20in%20column%20A%20with%20inventory%20numbers%20and%20associated%20serial%20numbers%3F%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3BA%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20B%20(Intended%20result)%3C%2FP%3E%3CP%3ECell1%26nbsp%3B%206%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%203%3C%2FP%3E%3CP%3ECell2%26nbsp%3B%20serial123%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3Bserial189%3C%2FP%3E%3CP%3ECell3%26nbsp%3B%207%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%206%3C%2FP%3E%3CP%3ECell4%26nbsp%3B%20serial126%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3Bserial123%3C%2FP%3E%3CP%3ECell5%26nbsp%3B%203%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%207%3C%2FP%3E%3CP%3ECell6%26nbsp%3B%20serial189%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3B%20%26nbsp%3Bserial126%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-LABS%20id%3D%22lingo-labs-1967708%22%20slang%3D%22en-US%22%3E%3CLINGO-LABEL%3EExcel%3C%2FLINGO-LABEL%3E%3C%2FLINGO-LABS%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1968303%22%20slang%3D%22en-US%22%3ERe%3A%20Sorting%20numbers%20in%20one%20cell%20while%20keeping%20attached%20text%20to%20it%20in%20another%20cell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1968303%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F895020%22%20target%3D%22_blank%22%3E%40Gerry2020%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3ERun%20this%20macro.%20Please%20test%20on%20a%20copy%20of%20your%20worksheet%20first.%3C%2FP%3E%0A%3CP%3E%26nbsp%3B%3C%2FP%3E%0A%3CPRE%20class%3D%22lia-code-sample%20language-visual%22%3E%3CCODE%3ESub%20SortData()%0A%20%20%20%20Dim%20m%20As%20Long%0A%20%20%20%20Dim%20v()%20As%20Variant%0A%20%20%20%20Dim%20i%20As%20Long%0A%20%20%20%20Dim%20j%20As%20Long%0A%20%20%20%20Dim%20tmp1%20As%20Long%0A%20%20%20%20Dim%20tmp2%20As%20String%0A%20%20%20%20m%20%3D%20Range(%22A%22%20%26amp%3B%20Rows.Count).End(xlUp).Row%0A%20%20%20%20v%20%3D%20Range(%22A1%3AA%22%20%26amp%3B%20m).Value%0A%20%20%20%20For%20i%20%3D%201%20To%20m%20-%202%20Step%202%0A%20%20%20%20%20%20%20%20For%20j%20%3D%20i%20%2B%202%20To%20m%20Step%202%0A%20%20%20%20%20%20%20%20%20%20%20%20If%20v(i%2C%201)%20%26gt%3B%20v(j%2C%201)%20Then%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmp1%20%3D%20v(i%2C%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20tmp2%20%3D%20v(i%20%2B%201%2C%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v(i%2C%201)%20%3D%20v(j%2C%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v(i%20%2B%201%2C%201)%20%3D%20v(j%20%2B%201%2C%201)%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v(j%2C%201)%20%3D%20tmp1%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20v(j%20%2B%201%2C%201)%20%3D%20tmp2%0A%20%20%20%20%20%20%20%20%20%20%20%20End%20If%0A%20%20%20%20%20%20%20%20Next%20j%0A%20%20%20%20Next%20i%0A%20%20%20%20Application.ScreenUpdating%20%3D%20False%0A%20%20%20%20Range(%22A1%3AA%22%20%26amp%3B%20m).Value%20%3D%20v%0A%20%20%20%20Application.ScreenUpdating%20%3D%20True%0AEnd%20Sub%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1968730%22%20slang%3D%22en-US%22%3ERe%3A%20Sorting%20numbers%20in%20one%20cell%20while%20keeping%20attached%20text%20to%20it%20in%20another%20cell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1968730%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F127945%22%20target%3D%22_blank%22%3E%40Hans%20Vogelaar%3C%2FA%3E%26nbsp%3B%20well%20that%20looks%20complex%20but%20I'll%20try%20it%20out.%20Thanks%20for%20the%20solution.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1968735%22%20slang%3D%22en-US%22%3ERe%3A%20Sorting%20numbers%20in%20one%20cell%20while%20keeping%20attached%20text%20to%20it%20in%20another%20cell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1968735%22%20slang%3D%22en-US%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F895020%22%20target%3D%22_blank%22%3E%40Gerry2020%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%0A%3CP%3EYou%20don't%20really%20have%20to%20understand%20the%20code.%3C%2FP%3E%0A%3CP%3EPress%20Alt%2BF11%20to%20activate%20the%20Visual%20Basic%20Editor.%3C%2FP%3E%0A%3CP%3ESelect%20Insert%20%26gt%3B%20Module.%3C%2FP%3E%0A%3CP%3ECopy%20the%20code%20from%20my%20previous%20reply%20into%20the%20module.%3C%2FP%3E%0A%3CP%3EWith%20the%20insertion%20point%20anywhere%20in%20the%20code%2C%20press%20F5%20to%20run%20it.%3C%2FP%3E%0A%3CP%3ESwitch%20back%20to%20Excel%20to%20view%20the%20result.%3C%2FP%3E%3C%2FLINGO-BODY%3E
New Contributor

Raw data scanned into inventory in column A where Inventory numbers in Cells 1,3,6 have to be sorted numerically from smallest to largest while keeping attached serial numbers in Cells 2,4,6 to the sorted Cells 1,3,6 as shown in Column B.

What's the fastest way to do this if I have hundreds of cells in column A with inventory numbers and associated serial numbers?

 

             A                                  B (Intended result)

Cell1  6                                    3

Cell2  serial123                       serial189

Cell3  7                                    6

Cell4  serial126                       serial123

Cell5  3                                    7

Cell6  serial189                       serial126

 

5 Replies

@Gerry2020 

Run this macro. Please test on a copy of your worksheet first.

 

Sub SortData()
    Dim m As Long
    Dim v() As Variant
    Dim i As Long
    Dim j As Long
    Dim tmp1 As Long
    Dim tmp2 As String
    m = Range("A" & Rows.Count).End(xlUp).Row
    v = Range("A1:A" & m).Value
    For i = 1 To m - 2 Step 2
        For j = i + 2 To m Step 2
            If v(i, 1) > v(j, 1) Then
                tmp1 = v(i, 1)
                tmp2 = v(i + 1, 1)
                v(i, 1) = v(j, 1)
                v(i + 1, 1) = v(j + 1, 1)
                v(j, 1) = tmp1
                v(j + 1, 1) = tmp2
            End If
        Next j
    Next i
    Application.ScreenUpdating = False
    Range("A1:A" & m).Value = v
    Application.ScreenUpdating = True
End Sub

@Hans Vogelaar  well that looks complex but I'll try it out. Thanks for the solution.

@Gerry2020 

You don't really have to understand the code.

Press Alt+F11 to activate the Visual Basic Editor.

Select Insert > Module.

Copy the code from my previous reply into the module.

With the insertion point anywhere in the code, press F5 to run it.

Switch back to Excel to view the result.

@Hans Vogelaar  OK tomorrow I will try it out when I have to try and sort 400+ inventory tag numbers while keeping their associated serial numbers in the cell below each tag number.  Thanks again!

@Gerry2020 

As variant you may add helper column as

image.png

and sort on it

image.png