Note: The other languages of the website are Google-translated. Back to English

วิธีจัดเรียงตัวเลขภายในเซลล์ใน Excel

เป็นเรื่องง่ายและเป็นเรื่องปกติที่เราจะจัดเรียงตัวเลขในรายการคอลัมน์ แต่คุณเคยพยายามจัดเรียงตัวเลขภายในเซลล์เดียวหรือไม่? อาจไม่มีวิธีที่ดีสำหรับคุณยกเว้นจัดเรียงทีละรายการที่นี่ฉันจะพูดถึงวิธีการเรียงลำดับตัวเลขภายในเซลล์ใน Excel

จัดเรียงตัวเลขภายในเซลล์ด้วยสูตร

จัดเรียงตัวเลขภายในเซลล์ด้วย User Defined Function

จัดเรียงตัวเลขที่คั่นด้วยเครื่องหมายจุลภาคภายในเซลล์ด้วยรหัส VBA


ลูกศรสีฟ้าฟองขวา จัดเรียงตัวเลขภายในเซลล์ด้วยสูตร

ในการจัดเรียงตัวเลขภายในเซลล์ในแผ่นงานคุณสามารถใช้สูตรยาวต่อไปนี้ได้โปรดทำดังนี้:

1. ถัดจากข้อมูลของคุณโปรดป้อนสูตรต่อไปนี้ในตัวอย่างนี้ฉันจะพิมพ์ลงในเซลล์ C1 ดูภาพหน้าจอ:

=TEXT(SUM(SMALL(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1)))

doc-sort-numbers-in-cells-1

2. จากนั้นกด Ctrl + Shift + Enter เข้าด้วยกันจากนั้นลากจุดจับเติมไปยังช่วงที่คุณต้องการใช้สูตรนี้และคุณจะได้รับตัวเลขที่เรียงลำดับจากเล็กไปหาใหญ่ ดูภาพหน้าจอ:

doc-sort-numbers-in-cells-1

หมายเหตุ:

1. ถ้าหลักของตัวเลขมากกว่า 15 ในเซลล์สูตรนี้จะไม่ได้ผลลัพธ์ที่ถูกต้อง

2. หากคุณต้องการเรียงลำดับตัวเลขจากมากไปหาน้อยคุณสามารถใช้สูตรนี้: =TEXT(SUM(LARGE(--MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),ROW(INDIRECT("1:"&LEN(A1))))*10^(LEN(A1)-ROW(INDIRECT("1:"&LEN(A1))))),REPT("0",LEN(A1))).

3. ในสูตรด้านบน A1 ระบุเซลล์ที่มีตัวเลขที่คุณต้องการจัดเรียงคุณสามารถเปลี่ยนได้ตามต้องการ


ลูกศรสีฟ้าฟองขวา จัดเรียงตัวเลขภายในเซลล์ด้วย User Defined Function

เนื่องจากมีข้อ จำกัด บางประการของสูตรคุณสามารถใช้สิ่งต่อไปนี้ ฟังก์ชันที่ผู้ใช้กำหนด เพื่อจัดเรียงตัวเลขในเซลล์ที่ยาวกว่า 15 หลัก

1. กด ALT + F11 และจะเปิดไฟล์ หน้าต่าง Microsoft Visual Basic for Applications.

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

รหัส VBA: จัดเรียงตัวเลขภายในเซลล์

Function SortNumsInCell(pNum As String, Optional pOrder As Boolean) As String
'Update 20140717
Dim xOutput As String
For i = 0 To 9
  For j = 1 To UBound(VBA.Split(pNum, i))
    xOutput = IIf(pOrder, i & xOutput, xOutput & i)
  Next
Next
SortNumsInCell = xOutput
End Function

3. จากนั้นบันทึกและปิดรหัสนี้กลับไปที่แผ่นงานของคุณแล้วป้อนสูตรนี้ = sortnumsincell (A1) ลงในเซลล์ว่างถัดจากข้อมูลของคุณดูภาพหน้าจอ:

doc-sort-numbers-in-cells-1

4. จากนั้นลากจุดจับเติมไปยังเซลล์ที่คุณต้องการให้มีสูตรนี้และตัวเลขทั้งหมดในเซลล์จะถูกเรียงลำดับจากน้อยไปมากตามภาพหน้าจอต่อไปนี้:

doc-sort-numbers-in-cells-1

หมายเหตุ: หากคุณต้องการเรียงลำดับตัวเลขจากมากไปหาน้อยโปรดป้อนสูตรนี้ = sortnumsincell (A1,1)


ลูกศรสีฟ้าฟองขวา จัดเรียงตัวเลขที่คั่นด้วยเครื่องหมายจุลภาคภายในเซลล์ด้วยรหัส VBA

หากตัวเลขของคุณถูกคั่นด้วยอักขระบางตัวเช่นลูกน้ำอัฒภาคเครื่องหมายจุดและอื่น ๆ ตามภาพหน้าจอต่อไปนี้คุณจะเรียงลำดับในเซลล์ได้อย่างไร ตอนนี้ขอแนะนำรหัส VBA เพื่อให้คุณเรียงลำดับ

doc-sort-numbers-in-cells-1

1. กด ALT + F11 คีย์เพื่อเปิด หน้าต่าง Microsoft Visual Basic for Applications

2. คลิก สิ่งที่ใส่เข้าไป > โมดูลและวางรหัสต่อไปนี้ในไฟล์ หน้าต่างโมดูล.

รหัส VBA: เรียงลำดับตัวเลขคั่นด้วยเครื่องหมายจุลภาคภายในเซลล์

Sub SortNumsInRange()
'Update 20140717
Dim Rng As Range
Dim WorkRng As Range
Dim Arr As Variant
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Set objArrayList = CreateObject("System.Collections.ArrayList")
For Each Rng In WorkRng
    Arr = VBA.Split(Rng.Value, ",")
    For i = 0 To UBound(Arr)
        xMin = i
        For j = i + 1 To UBound(Arr)
            If Arr(xMin) > Arr(j) Then
                xMin = j
            End If
        Next j
        If xMin <> i Then
            temp = Arr(i)
            Arr(i) = Arr(xMin)
            Arr(xMin) = temp
        End If
    Next i
    Rng.Value = VBA.Join(Arr, ",")
Next
End Sub

3. จากนั้นกด F5 เพื่อเรียกใช้รหัสนี้จากนั้นเลือกเซลล์ของคุณที่มีตัวเลขในกล่องพรอมต์ที่โผล่ออกมาดูภาพหน้าจอ:

doc-sort-numbers-in-cells-1

4. จากนั้นคลิก OKตัวเลขทั้งหมดในเซลล์จะเรียงลำดับจากน้อยไปมากในช่วงเดิม

หมายเหตุ: คุณสามารถเปลี่ยนเครื่องหมายจุลภาค“,” เป็นอักขระอื่น ๆ ตามที่คุณต้องการในโค้ดด้านบน และรหัสนี้สามารถจัดเรียงข้อมูลจากน้อยไปมากเท่านั้น


บทความที่เกี่ยวข้อง:

วิธีจัดเรียงตัวเลขด้วยยัติภังค์ใน Excel

วิธีจัดเรียงข้อมูลตามค่าที่พบบ่อยที่สุดใน Excel?

วิธีจัดเรียงที่อยู่อีเมลตามโดเมนใน Excel

วิธีจัดเรียงแถวเพื่อวางเซลล์ว่างไว้ด้านบนใน Excel


เครื่องมือเพิ่มประสิทธิภาพการทำงานในสำนักงานที่ดีที่สุด

Kutools สำหรับ Excel แก้ปัญหาส่วนใหญ่ของคุณและเพิ่มผลผลิตของคุณได้ถึง 80%

  • นำมาใช้ใหม่: ใส่อย่างรวดเร็ว สูตรที่ซับซ้อนแผนภูมิ และสิ่งที่คุณเคยใช้มาก่อน เข้ารหัสเซลล์ ด้วยรหัสผ่าน; สร้างรายชื่อผู้รับจดหมาย และส่งอีเมล ...
  • ซุปเปอร์ฟอร์มูล่าบาร์ (แก้ไขข้อความและสูตรหลายบรรทัดได้อย่างง่ายดาย); การอ่านเค้าโครง (อ่านและแก้ไขเซลล์จำนวนมากได้อย่างง่ายดาย); วางลงในช่วงที่กรองแล้ว...
  • ผสานเซลล์ / แถว / คอลัมน์ โดยไม่สูญเสียข้อมูล แยกเนื้อหาของเซลล์ รวมแถว / คอลัมน์ที่ซ้ำกัน... ป้องกันเซลล์ซ้ำ; เปรียบเทียบช่วง...
  • เลือกซ้ำหรือไม่ซ้ำ แถว; เลือกแถวว่าง (เซลล์ทั้งหมดว่างเปล่า); Super Find และ Fuzzy Find ในสมุดงานจำนวนมาก สุ่มเลือก ...
  • สำเนาถูกต้อง หลายเซลล์โดยไม่เปลี่ยนการอ้างอิงสูตร สร้างการอ้างอิงอัตโนมัติ ถึงหลายแผ่น ใส่สัญลักษณ์แสดงหัวข้อย่อย, กล่องกาเครื่องหมายและอื่น ๆ ...
  • แยกข้อความ, เพิ่มข้อความ, ลบตามตำแหน่ง, ลบ Space; สร้างและพิมพ์ผลรวมย่อยของเพจ แปลงระหว่างเนื้อหาของเซลล์และความคิดเห็น...
  • ซุปเปอร์ฟิลเตอร์ (บันทึกและใช้โครงร่างตัวกรองกับแผ่นงานอื่น ๆ ); การเรียงลำดับขั้นสูง ตามเดือน / สัปดาห์ / วันความถี่และอื่น ๆ ตัวกรองพิเศษ โดยตัวหนาตัวเอียง ...
  • รวมสมุดงานและแผ่นงาน; ผสานตารางตามคอลัมน์สำคัญ แยกข้อมูลออกเป็นหลายแผ่น; Batch แปลง xls, xlsx และ PDF...
  • คุณสมบัติที่ทรงพลังมากกว่า 300 รายการ. รองรับ Office/Excel 2007-2021 และ 365 รองรับทุกภาษา ง่ายต่อการปรับใช้ในองค์กรหรือองค์กรของคุณ คุณสมบัติเต็มรูปแบบ ทดลองใช้ฟรี 30 วัน รับประกันคืนเงินภายใน 60 วัน
kte แท็บ 201905

แท็บ Office นำอินเทอร์เฟซแบบแท็บมาที่ Office และทำให้งานของคุณง่ายขึ้นมาก

  • เปิดใช้งานการแก้ไขและอ่านแบบแท็บใน Word, Excel, PowerPoint, ผู้จัดพิมพ์, Access, Visio และโครงการ
  • เปิดและสร้างเอกสารหลายรายการในแท็บใหม่ของหน้าต่างเดียวกันแทนที่จะเป็นในหน้าต่างใหม่
  • เพิ่มประสิทธิภาพการทำงานของคุณ 50% และลดการคลิกเมาส์หลายร้อยครั้งให้คุณทุกวัน!
ด้านล่าง officetab
จัดเรียงความคิดเห็นโดย
ความคิดเห็น (13)
ยังไม่มีการให้คะแนน เป็นคนแรกที่ให้คะแนน!
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ท่านโปรดช่วยจัดเรียงข้อมูลสำหรับสำเนาก่อนไม่ว่าจะเล็กหรือใหญ่ ตัวอย่าง 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 ขอบคุณมากสำหรับความช่วยเหลือของคุณ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ฉันสงสัยว่า UDF นี้เป็นอย่างไร = sortnumsincell (A1,1), สามารถแก้ไขได้โดยทั่วไปมากขึ้นเช่น =sortnumsincell(A1," "," ,,1) ที่อาร์กิวเมนต์แรก A1, คือเซลล์เป้าหมาย, อาร์กิวเมนต์ที่สอง,""เป็นตัวคั่นที่สามารถใช้อักขระใด ๆ หรือช่องว่างหรือไม่ก็ได้โดยมีอาร์กิวเมนต์ที่สาม "", ตัวคั่นที่แตกต่างกันหรือเหมือนกัน และอาร์กิวเมนต์ที่สี่ 1 หรือ 0ซึ่งระบุการเรียงลำดับจากน้อยไปมากหรือจากมากไปน้อย โดยสตริงผลลัพธ์แสดง จัดเรียงอย่างถูกต้อง ภายในเซลล์เดียว โดยมีค่าเริ่มต้นของตัวคั่นเหมือนกับสตริงเดิม เว้นแต่จะระบุไว้ในเทอมที่สาม ฉันต้องการให้มันทำงานได้ทั้งกับสตริงและตัวเลข และบางครั้งอาร์กิวเมนต์ที่สองหรือสามอาจเป็นการป้อนบรรทัด เช่นเดียวกับการป้อนด้วย alt-enter ด้วยตนเอง คุณจะเป็นฮีโร่ประจำเดือนของฉันถ้าคุณทำได้ ฉันพยายาม แต่ล้มเหลวอย่างน่าสังเวช ขอขอบคุณ.
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันมีชุดเซลล์ที่มีตัวเลขคั่นด้วยช่องว่างที่ฉันต้องการจัดเรียง เช่น 8 4 5 1 6 3 ที่ฉันต้องการจัดเรียงเป็น 1 3 4 5 6 8 ความช่วยเหลือใด ๆ ที่ชื่นชม
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
มีวิธีใดในการจัดเรียงตัวเลขเพิ่มเติมในเวลาเดียวกันจากเซลล์เดียวหรือไม่? ตัวอย่าง ผมมีรายการเลขที่สินทรัพย์ 50000 เช่น A1234,A1235... และผมต้องดึงหมายเลขเฉพาะ 500 รายการและต้องดึง 500 รายการในแต่ละครั้งเพื่อทำการเปลี่ยนแปลงและบันทึก ขอบคุณครับ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ต้องการเรียงลำดับ 84-12-74-26-98 สั่งอะไรก็ได้ 12-26-74-84-98 หรือ 98-84-74-26-12 ขอบคุณครับ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ถ้า CInt(Arr(xMin)) > CInt(Arr(j)) และมันใช้งานได้
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
ฉันต้องการเรียงลำดับจำนวนทั้งหมด 14000 ถึง 20000 จากแถวต่างๆ ตัวอย่าง:- 2000,1500 หนึ่งแถวและชอบที่จะจัดเรียงจำนวนแถวทั้งหมด
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ดูเหมือนว่าโค้ด VBA จะแสดงผลไม่ถูกต้อง เช่น ก่อน 13,50,47,7,39 และหลัง 13-39-47-50-7 ความคิดใด ๆ ว่าทำไม?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
HOLA, MI PROBLEMA ES QUE TENGO EXEL 2019 EN ESPAÑOL COMO SERIA LA สูตร?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
วิธีจัดเรียงข้อความ AZ ภายในเซลล์ใน Excel?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี ขอบคุณมากสำหรับการเรียงลำดับตัวเลขที่คั่นด้วยเครื่องหมายจุลภาคภายในเซลล์ด้วยรหัส VBA
เพียงแค่ฉันประสบปัญหาหนึ่งกับรหัส
รหัสตรวจไม่พบตัวเลขสามหลัก เช่น ตัวเลข (65, 93, 53, 72, 64, 85, 103, 48, 77, 81, 54) หลังจากใส่รหัส, ลำดับใหม่ (103, 48, 53, 54, 64, 65, 72, 77, 81, 85, 93)
คุณมีวิธีแก้ไขปัญหาหรือไม่?
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
สวัสดี omer บางทีรหัสด้านล่างอาจช่วยคุณได้ โปรดลอง:
ฟังก์ชันสาธารณะ CellSort(r As Range) As String
Dim bry() ตราบใดที่ L ตราบใดที่ U ตราบใดที่
ch = r(1).ข้อความ
ary = แยก (ch, ",")
L = LBound(อารีย์)
U = UBound(อารีย์)
ReDim bry(L ถึง U)
สำหรับผม = LBound(ary) ถึง UBound(ary)
bry(i) = CLng(อารีย์(i))
ต่อไปฉัน
โทร BubbleSort(bry)
สำหรับผม = LBound(bry) ถึง UBound(bry)
ary(i) = CStr(bry(ผม))
ต่อไปฉัน
CellSort = เข้าร่วม (ary, ",")
ฟังก์ชั่นเอนด์

ย่อย BubbleSort(arr)
Dim strTemp เป็นตัวแปร
มืดมนตราบนานเท่านาน
ติ่ม j ตราบ
Dim lng Min ตราบใดที่
Dim lngMax ตราบเท่าที่
lngMin = ปอนด์ (arr)
lngMax = UBound(arr)
สำหรับฉัน = lngMin ถึง lngMax - 1
สำหรับ j = i + 1 ถึง lngMax
ถ้า arr(i) > arr(j) แล้วก็
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
ถัดไปเจ
ต่อไปฉัน
End Sub หลังจากใส่โค้ดด้านบนแล้ว โปรดใช้สูตรนี้: =เซลล์เรียงลำดับ(A1)และคุณจะได้ผลลัพธ์ที่คุณต้องการ
ความคิดเห็นนี้ถูกย่อให้เล็กสุดโดยผู้ดำเนินรายการบนเว็บไซต์
Hola, se pueden ordenar letras en una sola celda por orden alfabético? คุณ uso excel สำหรับ Mac Gracias
มีความคิดเห็นยังไม่มีการโพสต์ที่นี่
แสดงความคิดเห็นของคุณ
โพสต์ในฐานะแขก
×
ให้คะแนนโพสต์นี้:
0   ตัวอักษร
สถานที่แนะนำ

ช่องทางอื่นๆ

ลิขสิทธิ์© 2009 - wwwextendoffice.com | สงวนลิขสิทธิ์. ขับเคลื่อนโดย ExtendOffice. | แผนผังเว็บไซต์
Microsoft และโลโก้ Office เป็นเครื่องหมายการค้าหรือเครื่องหมายการค้าจดทะเบียนของ Microsoft Corporation ในสหรัฐอเมริกาและ / หรือประเทศอื่น ๆ
ได้รับการปกป้องโดย Sectigo SSL