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)))

док-сортировка-номера-в-ячейках-1

2. Затем нажмите Shift + Ctrl + Enter вместе, затем перетащите маркер заполнения в диапазон, в котором вы хотите применить эту формулу, и вы увидите, что числа отсортированы от меньшего к большему. Смотрите скриншот:

док-сортировка-номера-в-ячейках-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 указывает ячейку, содержащую числа, которые вы хотите отсортировать, вы можете изменить ее по своему усмотрению.


стрелка синий правый пузырь Сортировка чисел в ячейках с помощью функции, определяемой пользователем

Поскольку у формулы есть некоторые ограничения, вы можете использовать следующие Функция, определяемая пользователем для сортировки чисел в ячейках длиной более 15 цифр.

1. Удерживайте ALT + F11 ключи, и он открывает Окно Microsoft Visual Basic для приложений.

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) в пустую ячейку рядом с вашими данными, см. снимок экрана:

док-сортировка-номера-в-ячейках-1

4. Затем перетащите маркер заполнения в ячейки, которые вы хотите содержать эту формулу, и все числа в ячейках были отсортированы в порядке возрастания, как показано на следующем снимке экрана:

док-сортировка-номера-в-ячейках-1

Внимание: Если вы хотите отсортировать числа в порядке убывания, введите эту формулу = sortnumsincell (A1,1).


стрелка синий правый пузырь Сортировка чисел, разделенных запятыми, в ячейках с кодом VBA

Если ваши числа разделены определенными символами, такими как запятая, точка с запятой, точка и т. Д., Как показано на следующем снимке экрана, как вы можете отсортировать их по ячейкам? Теперь я представляю вам код VBA, чтобы вы могли их отсортировать.

док-сортировка-номера-в-ячейках-1

1. Удерживайте ALT + F11 , чтобы открыть Окно Microsoft Visual Basic для приложений.

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 ключ для запуска этого кода, а затем выберите ячейки, которые содержат числа в всплывающем окне подсказки, см. снимок экрана:

док-сортировка-номера-в-ячейках-1

4, Затем нажмите OK, все числа в ячейках отсортированы по возрастанию в исходном диапазоне.

Внимание: Вы можете заменить запятую «,» на любые другие символы в приведенном выше коде. И этот код может только сортировать данные по возрастанию.


Статьи по теме:

Как в Excel сортировать числа через дефис?

Как отсортировать данные в Excel по наиболее частому значению?

Как отсортировать адрес электронной почты по домену в Excel?

Как отсортировать строки, чтобы в Excel сверху были пустые ячейки?


Лучшие инструменты для работы в офисе

Kutools for Excel решает большинство ваших проблем и увеличивает вашу производительность на 80%

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

Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
офисный дно
Сортировать комментарии по
Комментарии (13)
Оценок пока нет. Оцените первым!
Этот комментарий был сведен к минимуму модератором на сайте
сэр, не могли бы вы сначала помочь отсортировать данные для дубликатов, будь они маленькими или большими Пример 1211 ---> 1112 9495 ---> 9945 7379 ---> 7739 Большое спасибо за вашу помощь
Этот комментарий был сведен к минимуму модератором на сайте
Привет, мне было интересно, как этот UDF, = sortnumsincell (A1,1), можно изменить в более общем виде, например = номер сортировки в ячейке (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 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)
У вас есть решение проблемы?
Этот комментарий был сведен к минимуму модератором на сайте
Привет, Омер. Может быть, приведенный ниже код может помочь вам, попробуйте:
Открытая функция CellSort(r As Range) As String
Dim bry() As Long, L As Long, U As Long
ch = г(1).Текст
ary = Разделить (ch, ",")
L = Lграница (арная)
U = Uграница (арочная)
ReDim bry (от L до U)
Для i = LBound(ary) To UBound(ary)
bry(i) = CLng(ary(i))
Затем я
Вызов пузырьковой сортировки (bry)
Для i = LBound(bry) К UBound(bry)
ary(i) = CStr(bry(i))
Затем я
CellSort = Присоединить (арочный, ",")
End Function

Sub BubbleSort (обработка)
Dim strTemp как вариант
Dim i As Long
Dim J As Long
Dim lngMin As Long
Dim lngMax As Long
lngMin = LBound (приб.)
lngMax = UBound(приб.)
Для i = lngMin до lngMax - 1
Для j = i + 1 To lngMax
Если обр(i) > обр(j) Тогда
стрТемп = обр (я)
обр (я) = обр (j)
обр (j) = улТемп
End If
Следующий j
Затем я
End SubПосле вставки приведенного выше кода примените следующую формулу: = Сортировка ячеек (A1).И вы получите нужный вам результат.
Этот комментарий был сведен к минимуму модератором на сайте
Hola, se pueden ordenar letras en una sola celda por orden alfabetico? Вы можете преуспеть в Mac. Грасиас
Здесь еще нет комментариев
Оставляйте свои комментарии
Публикация как гость
×
Оценить этот пост:
0   Характеристики
Предлагаемые места

Подписывайтесь на Нас

Copyright © 2009 - www.extendoffice.ком. | Все права защищены. Питаться от ExtendOffice, | Карта сайта
Microsoft и логотип Office являются товарными знаками или зарегистрированными товарными знаками Microsoft Corporation в США и / или других странах.
Защищено Sectigo SSL