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

Як відсортувати числа в комірці в Excel?

Нам легко і звично сортувати числа в списку стовпців, але чи намагалися ви коли-небудь сортувати числа в одній комірці? Можливо, для вас немає хорошого способу, за винятком того, щоб упорядкувати їх по одному, тут я розповім про те, як сортувати числа в клітинках у Excel.

Сортування чисел у клітинках за формулою

Сортування чисел у клітинках за допомогою функції користувача

Відсортуйте числа, розділені комами в комірках із кодом 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. У наведених вище формулах А1 позначає клітинку, яка містить цифри, які потрібно відсортувати, ви можете змінити її відповідно до своїх потреб.


стрілка синя права міхур Сортування чисел у клітинках за допомогою функції користувача

Оскільки формула має деякі обмеження, ви можете використовувати наступне Визначена користувачем функція для сортування чисел у комірках довжиною більше 15 цифр.

1. Утримуйте клавішу ALT + F11 і відкриває Вікно Microsoft Visual Basic для програм.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

Код 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 для програм.

2. Клацання Insert > Модуліта вставте наступний код у Вікно модуля.

Код 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%

  • Повторне використання: Швидко вставте складні формули, діаграми і все, що ви використовували раніше; Шифрувати комірки з паролем; Створити список розсилки та надсилати електронні листи ...
  • Супер формула бар (легко редагувати кілька рядків тексту та формули); Макет читання (легко читати та редагувати велику кількість комірок); Вставте у відфільтрований діапазон...
  • Об’єднати клітинки / рядки / стовпці без втрати даних; Вміст розділених комірок; Об'єднати повторювані рядки / стовпці... Запобігання дублюючим клітинам; Порівняйте діапазони...
  • Виберіть Повторюваний або Унікальний Рядки; Виберіть Пусті рядки (усі клітинки порожні); Супер знахідка та нечітка знахідка у багатьох робочих зошитах; Випадковий вибір ...
  • Точна копія Кілька клітинок без зміни посилання на формулу; Автоматичне створення посилань на кілька аркушів; Вставте кулі, Прапорці та інше ...
  • Витяг тексту, Додати текст, Видалити за позицією, Видаліть пробіл; Створення та друк проміжних підсумків підкачки; Перетворення вмісту комірок та коментарів...
  • Супер фільтр (зберегти та застосувати схеми фільтрів до інших аркушів); Розширене сортування за місяцем / тижнем / днем, частотою та іншим; Спеціальний фільтр жирним, курсивом ...
  • Поєднайте робочі зошити та робочі аркуші; Об’єднати таблиці на основі ключових стовпців; Розділіть дані на кілька аркушів; Пакетне перетворення xls, xlsx та PDF...
  • Понад 300 потужних функцій. Підтримує Office / Excel 2007-2021 і 365. Підтримує всі мови. Легке розгортання на вашому підприємстві чи в організації. 30-денна безкоштовна пробна версія повних функцій. 60-денна гарантія повернення грошей.
вкладка kte 201905

Вкладка Office забезпечує інтерфейс з вкладками для Office і значно спрощує вашу роботу

  • Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
  • Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
  • Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!
дно офісної таблиці
Коментарі (13)
Поки немає оцінок. Оцініть першим!
Цей коментар був мінімізований модератором на сайті
сер, чи не могли б ви допоможіть спочатку відсортувати дані для дубліката, чи він маленький, чи великий.
Цей коментар був мінімізований модератором на сайті
Привіт, мені було цікаво, як це 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 ISPAÑOL COMO SERIA LA FORMULA?
Цей коментар був мінімізований модератором на сайті
Як відсортувати текст 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 як діапазон) як рядок
Dim bry() As Long, L As Long, U As Long
ch = r(1).Текст
ary = Split(ch, ",")
L = LBbound(ary)
U = UBbound(ary)
ReDim bry (L To U)
Для i = LBound(ary) До UBound(ary)
bry(i) = CLng(ary(i))
Далі я
Викликати BubbleSort(bry)
Для i = LBound(bry) до UBbound(bry)
ary(i) = CStr(bry(i))
Далі я
CellSort = Приєднатися (ary, ",")
End Function

Підсумкова сортування (обр.)
Dim strTemp як варіант
Dim i As Long
Dim j Як довго
Dim lngMin як довго
Dim lngMax As Long
lngMin = LBbound(arr)
lngMax = UBbound(arr)
Для i = lngMin До lngMax - 1
Для j = i + 1 До lngMax
Якщо arr(i) > arr(j) Тоді
strTemp = arr(i)
arr(i) = arr(j)
arr(j) = strTemp
End If
Наступний j
Далі я
End SubAfter вставивши наведений вище код, будь ласка, застосуйте цю формулу: =Сортування клітинок(A1).І ви отримаєте необхідний результат.
Цей коментар був мінімізований модератором на сайті
Hola, se pueden ordenar letras en una sola celda por orden alfabético? Ви використовуєте Excel для Mac. Gracias
There are no comments posted here yet
Залишайте свої коментарі
Публікація як гість
×
Оцініть цю публікацію:
0   Персонажі
Рекомендовані місця

Слідуй за нами

Copyright © 2009 - WWW.extendoffice.com. | Всі права захищені. На основі ExtendOffice. | Карта сайту
Microsoft та логотип Office є товарними знаками або зареєстрованими товарними знаками Microsoft Corporation у США та / або інших країнах.
Захищений Sectigo SSL