Сортировка внутри ячейки excel

 

Jack_Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#1

16.12.2015 11:33:32

Ссылка на решение проблемы (здесь не нашёл, а штука полезная)

http://forum.msexcel.ru/index.php?topic=7488.0

09-08-2016. Добавлена корректная сортировка чисел.

Автор:

МатросНаЗебре
15-09-2016. Минорные изменения для удобства (разные разделители для расцепки/сцепки) и понятные аргументы.  

Автор:

Jack_Famous
А также в посте #15 добавлен макрос от

Sanja

сортировки по месяцам (только для месяцев)

Код
'Сортировка данных внутри ячейки
'Авторы: GWolf и MCH
'Редактор (сортировка чисел): МатросНаЗебре
'Минорные изменения для удобства: Jack_Famous
'Сайт-источник: http://www.planetaexcel.ru/forum/index.php?PAGE_NAME=message&FID=1&TID=72769&MID=609946#message609946
'Сайт-оригинал: http://forum.msexcel.ru/index.php?topic=7488.0
'Аргументы функции:
'Ячейка - ячейка-источник
'РазделительСловосочетаний - необязательный аргумент. Разделитель, по которому определяются границы слов/фраз, которые впоследствии будут отсортированы (по умолчанию - пробел). Указать "10", в качестве переноса строки
'ОбъединитьЧерез - необязательный аргумент. Разделитель, через который сцепляются расцепленные и отсортированные слова/фразы (по умолчанию - пробел). Указать "10", в качестве переноса строки
'==========================================================================================================================================================================================================================

Function СортироватьВнутриЯчейки(Ячейка As Range, Optional РазделительСловосочетаний As String = " ", Optional ОбъединитьЧерез As String = " ") As String

Dim Arr

If РазделительСловосочетаний = "10" Then РазделительСловосочетаний = Chr(10)
If ОбъединитьЧерез = "10" Then ОбъединитьЧерез = Chr(10)

Arr = Split(Ячейка, РазделительСловосочетаний)
СортироватьВнутриЯчейки = Join(SortArr(Arr), ОбъединитьЧерез)

End Function

Function SortArr(ByVal Arr)

Dim i&, j&, N&, tmp$

If Not IsArray(Arr) Then SortArr = Arr: Exit Function
N = UBound(Arr)

For i = 0 To N - 1
    For j = i + 1 To N
        If IsNumeric(Arr(i)) And IsNumeric(Arr(j)) Then
            If Val(Arr(i)) > Val(Arr(j)) Then tmp = Arr(i): Arr(i) = Arr(j): Arr(j) = tmp
        Else
            If Arr(i) > Arr(j) Then tmp = Arr(i): Arr(i) = Arr(j): Arr(j) = tmp
        End If
Next j, i

SortArr = Arr

End Function

Изменено: Jack Famous16.09.2016 09:28:57

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Sheriff

Пользователь

Сообщений: 153
Регистрация: 05.03.2014

макрос не плохой, Решил воспользоваться им в новом файле с расширением .xlsm  и excel у меня завис. Работает макрос только в версии 97-2003. Т.е. он работает и в новой версии excel, но при перезапуске книги, зависает.

 

Jack_Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Добавьте макрос в модуль. Использую в EXCEL 2016. Смотрите обсуждение на сайте-источнике…

Изменено: Jack Famous09.08.2016 15:31:00

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Доброго вечера, планетяне!
Помогите пожалуйста с одним нюансом сортировки… UDF без проблем сортирует текст (по правилам Excel), а вот при сортировке чисел (когда в ячейке только числа и разделители) сортирует не по правилам. Как нужно изменить существующую UDF, чтобы она корректно сортировала числа? Или, может, нужно отдельную UDF для сортировки чисел писать?…

Уровень VBA:

иногда могу немного скорректировать чужой код ))))
Помогите пожалуйста…

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 
 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

МатросНаЗебре, огромное Вам спасибо!!!  :idea: Очень выручили… *Обновил код в шапке

Изменено: Jack Famous09.08.2016 16:27:15

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Татьяна

Пользователь

Сообщений: 281
Регистрация: 01.01.1970

Добрый день!
подниму тему, а как можно отсортировать внутри ячеек по месяцам, например в ячейке перечислены месяца не по порядку. а нужно что бы были по порядку….

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Татьяна, по-хорошему — исправлять макрос (добавить список по месяцам). Если по-простому, то заменить (массовая замена) все названия месяцев, добавить к названию индекс по порядку: 01январь, 02февраль и т.д. — в таком случае макрос сработает. Потом можно поменять обратно

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Татьяна

Пользователь

Сообщений: 281
Регистрация: 01.01.1970

Jack Famous спасибо за идею (по простому) сейчас буду пробовать…

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Татьяна, всегда пожалуйста  ;) я тоже не силён в макросах))))

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Татьяна

Пользователь

Сообщений: 281
Регистрация: 01.01.1970

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Татьяна, прикрепил пример)) а также вот тут готовый вариант для массовой замены слов  ;)

P.S.: изменил код (в шапке) для удобства

Изменено: Jack Famous15.09.2016 14:30:50

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#13

15.09.2016 16:19:15

Вариант только для месяцев. Названия месяцев не должны повторяться. Точнее повторяться могут, но будет учитываться только первый из повторов

Код
Option Compare Text
Function ПОМЕСЯЦАМ(cl As Range, Optional dl As String = ",") As String
arrMonths = Array("Январь", "Февраль", "Март", "Апрель", "Май", "Июнь", "Июль", "Август", "Сентябрь", "Октябрь", "Ноябрь", "Декабрь")
ReDim tmpArr(UBound(arrMonths))
For I = LBound(arrMonths) To UBound(arrMonths)
    For J = 0 To UBound(Split(Trim(cl), dl))
        s = Trim(Split(Trim(cl), dl)(J))
        If s = arrMonths(I) Then tmpArr(I) = s
    Next
Next
For I = LBound(tmpArr) To UBound(tmpArr)
    If tmpArr(I) <> Empty Then
        If ПОМЕСЯЦАМ = Empty Then
            ПОМЕСЯЦАМ = tmpArr(I)
        Else
            ПОМЕСЯЦАМ = ПОМЕСЯЦАМ & dl & " " & tmpArr(I)
        End If
    End If
Next
End Function

Прикрепленные файлы

  • Сортировка месяцев в ячейке.xlsm (15.47 КБ)

Согласие есть продукт при полном непротивлении сторон.

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Sanja, спасибо!  :idea: )))

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#15

15.09.2016 20:55:04

Без ограничений на количество наименований одного месяца

Скрытый текст

Прикрепленные файлы

  • Сортировка месяцев в ячейке-1.xlsm (16.6 КБ)

Изменено: Sanja16.09.2016 09:00:55

Согласие есть продукт при полном непротивлении сторон.

 

Jack Famous

Пользователь

Сообщений: 10852
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Sanja, спасибо за улучшенную версию)) :idea:

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

JAPANCARTS

Пользователь

Сообщений: 3
Регистрация: 25.06.2017

Здравствуйте.
Что то не могу разобраться с сортировкой данных внутри ячеек.
Надо внутри ячеек отсортировать данные примерно такого вида: NZE121, NZE124, NZE120, CE121, ZZE123, ZZE123, ZZE124
и затем удалить дублирующиеся.
или хотя бы одну из функций. Если конечно возможно такое. Я то что то на форуме только имена и числа.
пробую поменять под свои требования, вечно ругается что что то не то.

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

#18

25.06.2017 17:27:11

Вариант (в ячейке А1 указанная в #17 строка):

Код
Sub SortUniq()
Dim Arr, i As Long, k As Long, s As String, x As Long
    Arr = Split(Range("A1"), ", ")
    On Error Resume Next
    With New Collection
        For x = 0 To UBound(Arr)
            s = Trim(Arr(x))
            If Len(s) > 0 Then
                If IsEmpty(.Item(s)) Then
                    For i = 1 To .Count
                        If s < .Item(i) Then Exit For
                    Next
                    If i > .Count Then .Add s, s Else .Add s, s, Before:=i
                End If
            End If
        Next
        ReDim Arr(1 To .Count)
        For i = 1 To .Count
            Arr(i) = .Item(i)
        Next
    End With
    Range("A2").Resize(1, i - 1).Value = Arr
End Sub
 

JAPANCARTS

Пользователь

Сообщений: 3
Регистрация: 25.06.2017

Если это маркос для сортировки, то он не работает. Но есть плюсы, не ругается.
И вопрос не в том: сделайте., а в том как надо делать.
Пробовал и столбец А,
Может он конечно для какой то специальной строки #17. Тогда как это переделать для любых строк.

Изменено: JAPANCARTS28.06.2017 01:22:33

 

JayBhagavan

Пользователь

Сообщений: 11833
Регистрация: 17.01.2014

ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64

#20

28.06.2017 04:55:18

Цитата
2.3. Приложите файл(ы) с примером (общим весом не более 100 Кб) в реальной структуре и форматах данных того, что есть сейчас и того, что хотелось бы на выходе.

Ваше утверждение:

Цитата
JAPANCARTS написал: он не работает

без файла с макросом и результатом его работы — голословно.

<#0>
Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori

 

SAS888

Пользователь

Сообщений: 757
Регистрация: 01.01.1970

#21

28.06.2017 05:11:02

Если я правильно понял, то требуется выбрать уникальные значения и отсортировать их внутри ячейки с данными.
Если так, то выделите ячейку (диапазон ячеек) с данными и выполните макрос:

Код
Sub SortOnPlace()
    Dim i As Long, j As Long, r As Range, x, y, z, a()
    Set x = CreateObject("Scripting.Dictionary")
    Selection.Replace ",", ", " 'на случай, если нет пробела после запятой
    For Each r In Selection
        y = Split(Application.Trim(r), ", ")
        For Each z In y: x.Item(z) = z: Next
        a = x.Items
        For i = LBound(a) To UBound(a) - 1
            For j = i + 1 To UBound(a)
                If a(i) > a(j) Then
                    z = a(i): a(i) = a(j): a(j) = z
                End If
            Next
        Next
        r = Join(a, ", "): x.RemoveAll
    Next
End Sub

Изменено: SAS88828.06.2017 05:30:11

Чем шире угол зрения, тем он тупее.

 

Юрий М

Модератор

Сообщений: 60588
Регистрация: 14.09.2012

Контакты см. в профиле

#22

28.06.2017 12:08:53

Цитата
JAPANCARTS написал:
Если это маркос для сортировки, то он не работает

Работает. И не только сортирует, но и удаляет дубликаты.

Цитата
JAPANCARTS написал:
Может он конечно для какой то специальной строки #17

Это «специальная» строка та, которую Вы для примера указали в своём сообщении №17 — NZE121, NZE124, NZE120, CE121, ZZE123, ZZE123, ZZE124.
Напишите в ячейку А1 этот текст и выполните макрос — в ячейке А2 получите отсортированный результат и без дубликатов.

Цитата
JAPANCARTS написал:
И вопрос не в том: сделайте., а в том как надо делать

Т.е. Вам нужно было не решение, а ОПИСАНИЕ, как делать?
Как сделать — я Вам показал. Если нужно перебрать несколько ячеек — добавьте цикл перебора этих ячеек.Если нужно результат выводить в другие ячейки — измените адрес выгрузки.
И согласен с JayBhagavan — Ваше утверждение голословно.

 

Подскажите как с размерами быть, чтобы они были отсортированы в яйчейке.
XXS
XS
S
M
L
XL
2XL

ну и т.д. В данный момент они в хаотичном порядке.

 

Станислав К., приложите пример в xls: что есть — как надо.

 

Прикрепил пример. Проблем с числами нет, сортировка работает, но не работает с размерами вида XS — S — M и т.д.
Все размеры в одном файле. Нет ли общего решения для сортировки чисел и букв?

 

del.

Изменено: Казанский09.01.2018 20:57:36
(неактуально)

 

Казанский, это прайс лист. Одежда и обувь. Разные размеры, числовые такие как 40,42,44, еще такие 40-42,42-44,44-46, с ними проблем не возникло. Еще есть размеры XXS,XS,S и т.д. С ними пока делаю, как

Jack Famous

написал по простому, путем переименования 01XXS, 02XS и т.д.
А связано это с тем, что это все находится внутри ячеек у каждого товара свои размеры. И они изначально подтягиваются мне почему то в хаотичном порядке.
Т.е. у товара размеры 2XL, S,M,XXS, а нужен порядок внутри ячейки XXS,XS,S,M,L,XL,2XL, а также 40,42 и 40-42,42-44 и т.д.

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#28

09.01.2018 11:17:08

Цитата
Станислав К. написал: все находится внутри ячеек

В примере все находится как раз в разных ячейках. И я, например, не знаю что больше XXS или XXM или L. Покажите список по возрастанию

Согласие есть продукт при полном непротивлении сторон.

 

Sanja, порядок такой
XXS
XS
S
M
L
XL
2XL
На сколько помню, с английского S — small, M — medium, L — large.

 

Sanja

Пользователь

Сообщений: 14838
Регистрация: 10.01.2013

#30

09.01.2018 11:25:15

Цитата
Станислав К. написал: с английского

Вооот. Спасибо. А я всегда думал что это римские цифры. Но все равно нет примера, где в ячейке их надо сортировать

Согласие есть продукт при полном непротивлении сторон.

At the time this question was asked my LAselect framework add-in wasn’t available to the general public. But now it is and it solves just these kind of problems in an elegant way.

You only have to provide a few lines of ‘solution’ code in VBA to sort or order anything you want.

To get at the comma-delimited values use VBA’s Split() function. You’ll then have as many separate values as your cell had; if splitvalues(1) is firstname and splitvalues(0) is lastname, the Add-in could sort your single cell something like this:

Dim splitvalues1 as Variant, splitvalues2 as Variant

While LAselect(ControlSignal, BreakOutBox)
      valcol = BreakOutBox.Pins.ColData

      splitvalues1 = Split(BreakOutBox.Data.VBArray(BreakOutBox.Pins.RowSource, valcol), ",")

      splitvalues2 = Split(BreakOutBox.Data.VBArray(BreakOutBox.Pins.RowDestin, valcol), ",")


      If splitvalues1(0) > splitvalues2(0) Then
         ControlSignal = LA_ISLARGER
      ElseIf splitvalues1(0) < splitvalues2(0) Then
         ControlSignal = LA_ISSMALLER
      Else
         ControlSignal = LA_ISEQUAL
      End If
Wend

At LA_ISEQUAL you would have to test for splitvalues1(1) etc. to further sort duplicate lastnames on first names.

Did it become clear to you that it really does NOT matter for my add-in how many delimter-separated fields you squeeze into a cell or even what other cells you to include into the decision? Both complete records are passed to your ‘solution’ code and you’ll have full freedom what ever property you wish to sort on.

My demo is available from www.liquorice-allsorts.com so you could try this out.

Для нас легко и часто сортировать числа в списке столбцов, но пробовали ли вы когда-нибудь сортировать числа в одной ячейке? Возможно, для вас нет хорошего способа, кроме как расположить их по одному, здесь я расскажу о том, как сортировать числа в ячейках в 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% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

Сортировка слов внутри ячейки

msvmsu

Дата: Среда, 25.01.2017, 23:32 |
Сообщение № 1

Группа: Пользователи

Ранг: Новичок

Сообщений: 49


Репутация:

0

±

Замечаний:
20% ±


Excel 2010

Здравствуйте!

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

Заранее благодарю.

К сообщению приложен файл:

0387766.xls
(26.5 Kb)

 

Ответить

AlexM

Дата: Четверг, 26.01.2017, 00:17 |
Сообщение № 2

Группа: Друзья

Ранг: Участник клуба

Сообщений: 4257


Репутация:

1046

±

Замечаний:
0% ±


Excel 2003

Функция пользователя[vba]

Код

Function SortText(iText As Range) As String
Dim Arr, i As Long, j As Long, iWord As String
Arr = Split(iText)
For i = 0 To UBound(Arr)
    For j = 0 To UBound(Arr) — 1 — i
        If Arr(j) > Arr(j + 1) Then
            iWord = Arr(j)
            Arr(j) = Arr(j + 1)
            Arr(j + 1) = iWord
        End If
    Next j
Next i
SortText = Join(Arr)
End Function

[/vba]



Номер мобильного модема (без голосовой связи)
9269171249 МегаФон, Московский регион.

Сообщение отредактировал AlexMЧетверг, 26.01.2017, 00:18

 

Ответить

msvmsu

Дата: Четверг, 26.01.2017, 08:00 |
Сообщение № 3

Группа: Пользователи

Ранг: Новичок

Сообщений: 49


Репутация:

0

±

Замечаний:
20% ±


Excel 2010

AlexM, огромное спасибо. Это то, что нужно.

 

Ответить

  • Сортировка данных (слов и чисел) в ячейке по алфавиту
  • Поменять местами слова в ячейке Excel
  • Переставить определенные слова в начало или конец ячейки

В редких, но оттого не менее важных случаях при работе с Excel требуется изменить порядок слов внутри ячеек.

Сортировка данных (слов и чисел) в ячейке по алфавиту

Такая операция может потребоваться, например в процессе поиска и удаления неявных дублей или при построении сводных таблиц. Так или иначе, речь об операциях, в которых не важен порядок слов внутри ячеек.

Сортировка содержимого внутри ячейки

Сортировать слова внутри ячейки по алфавиту А-Я

Речь обычно о ситуациях, когда в ячейке два слова. Наглядный пример – когда данные в формате Фамилия-Имя нужно переделать в формат Имя-Фамилия. Но если слов 3 и более, они также предстанут в зеркальном порядке.

меняем местами слова в ячейках

Меняем местами имя и фамилию в списке

Переставить определенные слова в начало или конец ячейки

Иногда слова во фразах идут не в том порядке, который хочется, но известен заранее список слов, которые должны идти в начале или конце строк.

Поможет в этом случае меню «Изменить слова», т.к. в большей степени задача относится к словам, чем ячейкам, – изменяется позиция конкретных слов в ячейке, а не ячейка как независимая сущность.

Пример применения функции “переставить слова в начало ячейки”.

Поменять порядок слов в ячейках быстро и без сложных формул поможет !SEMTools.
Скачивайте и начинайте экономить время и силы для решения более важных задач!

Подключитесь к эксперту. Учитесь у живых инструкторов.

Сортировка данных — неотъемлемая часть их анализа. Вам может потребоваться расположить имена в списке по алфавиту, составить список складских запасов и отсортировать его по убыванию или упорядочить строки по цветам или значкам. Сортировка данных помогает быстро визуализировать данные и лучше понимать их, упорядочивать и находить необходимую информацию и в итоге принимать более правильные решения.

Сортировать данные можно по тексту (от А к Я или от Я к А), числам (от наименьших к наибольшим или от наибольших к наименьшим), а также датам и времени (от старых к новым или от новых к старым) в одном или нескольких столбцах. Можно также выполнять сортировку по настраиваемым спискам, которые создаете вы сами (например, списку, состоящему из элементов «Большой», «Средний» и «Маленький»), или по формату, включая цвет ячеек и цвет шрифта, а также по значкам.

Примечания: 

  • Для поиска наибольших и наименьших значений в диапазоне ячеек или таблице, например 10 самых высоких оценок или 5 самых низких сумм продаж, можно использовать функцию «Автофильтр» или условное форматирование.

  • Дополнительные сведения см. в статьях Фильтрация данных в таблице или диапазоне Excel и Применение условного форматирования в Excel.

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

Сортировка текстовых значений

  1. Выделите ячейку в столбце, который требуется отсортировать.

  2. На вкладке Главная в группе Сортировка и фильтр выполните одно из указанных ниже действий.

    • Чтобы быстро отсортировать значения по возрастанию, нажмите кнопку Команда "От А до Я" в Excel позволяет сортировать текст по алфавиту или числа от меньшего к большему (Сортировка от А до Я).

    • Чтобы быстро отсортировать значения по убыванию, нажмите кнопку Команда "От Я до А" в Excel позволяет сортировать текст по алфавиту в обратном порядке или числа от большего к меньшему (Сортировка от Я до А).

Примечания: 
Возможные проблемы

  • Убедитесь, что все данные сохранены в текстовом виде.    Если столбец, который подлежит сортировке, содержит числа, сохраненные в числовом формате, и числа, сохраненные в текстовом формате, необходимо отформатировать все ячейки либо как числа, либо как текст. В противном случае числа, сохраненные в числовом формате, после сортировки окажутся выше чисел, сохраненных в текстовом формате. Для преобразования всех выбранных данных в текстовый формат нажмите CTRL+1, чтобы открыть диалоговое окно Формат ячеек, откройте вкладку Число и в разделе Категория выберите вариант Общий, Число или Текст.

  • Удалите все начальные пробелы.    Иногда импортируемые из других приложений данные могут дополняться начальными пробелами. Прежде чем выполнять сортировку, удалите их из данных. Это можно сделать вручную или с помощью функции СЖПРОБЕЛЫ.

  1. Выделите ячейку в столбце, который требуется отсортировать.

  2. На вкладке Главная в группе Сортировка и фильтр выполните одно из указанных ниже действий.

    • Для сортировки чисел по возрастанию нажмите кнопку Команда "От А до Я" в Excel позволяет сортировать текст по алфавиту или числа от меньшего к большему (Сортировка от минимального к максимальному).

    • Для сортировки чисел по убыванию нажмите кнопку Команда "От Я до А" в Excel позволяет сортировать текст по алфавиту в обратном порядке или числа от большего к меньшему (Сортировка от максимального к минимальному).

Примечания: 

  • Возможные проблемы   

  • Убедитесь, что все числа сохранены в числовом формате.    Если результаты отличаются от ожидаемых, возможно, столбец содержит числа, сохраненные в текстовом формате. Например, отрицательные числа, импортируемые из некоторых систем бухгалтерского учета, или числа, содержащие начальный символ апострофа (), сохраняются в текстовом виде. Дополнительные сведения см. в разделе Преобразование чисел из текстового формата в числовой.

  1. Выделите ячейку в столбце, который требуется отсортировать.

  2. На вкладке Главная в группе Сортировка и фильтр выполните одно из указанных ниже действий.

    • Чтобы отсортировать значения по возрастанию, щелкните Команда "От А до Я" в Excel позволяет сортировать текст по алфавиту или числа от меньшего к большему (Сортировка от старых к новым).

    • Чтобы отсортировать значения от поздних дат или значений времени к ранним, нажмите кнопку Команда "От Я до А" в Excel позволяет сортировать текст по алфавиту в обратном порядке или числа от большего к меньшему (Сортировка от новых к старым).

Примечания: 
Возможные проблемы   

  • Убедитесь, что все значения даты и времени сохранены в формате даты и времени.    Если результаты отличаются от ожидаемых, возможно, столбец содержит значения даты и времени, сохраненные в текстовом формате. Чтобы значения даты и времени сортировались в Excel правильно, они должны быть сохранены как порядковые числа с информацией о дате или времени. Если Excel не может распознать значение как дату или время, оно сохраняется как текст. Дополнительные сведения см. в статье Преобразование дат из текстового формата в формат даты.

  • Для сортировки по дням недели измените формат ячеек таким образом, чтобы в них выводились дни недели. Для сортировки по дням недели независимо от даты преобразуйте их в текст с помощью функции ТЕКСТ. Однако функция ТЕКСТ возвращает текстовое значение, поэтому сортировка будет выполнена по алфавитно-цифровым данным. Дополнительные сведения см. в статье Отображение дат в виде дней недели.

Возможно, вы захотите выполнить сортировку по двум или нескольким столбцам или строкам, чтобы сгруппировать данные с одинаковыми значениями в одном столбце или строке, а затем отсортировать эти группы с одинаковыми значениями по другому столбцу или строке. Например, если есть столбцы «Отдел» и «Сотрудник», можно сначала выполнить сортировку по столбцу «Отдел» (для группировки всех сотрудников по отделам), а затем — по имени (для расположения имен сотрудников каждого отдела в алфавитном порядке). Можно одновременно выполнять сортировку по 64 столбцам.

Примечание: Для получения наилучших результатов в сортируемый диапазон нужно включить заголовки столбцов.

  1. Выделите любую ячейку в диапазоне данных.

    Список сотрудников по отделам для сортировки

  2. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Сортировка.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  3. В диалоговом окне Сортировка в группе Столбец в поле Сортировать по выберите первый столбец, по которому необходимо выполнить сортировку.

    Выберите первый столбец для сортировки

  4. В поле Сортировка выберите тип сортировки. Выполните одно из следующих действий:

    • Чтобы выполнить сортировку по текстовым значениям, числам или значениям даты и времени, выберите пункт Значения.

    • Чтобы выполнить сортировку по формату, выберите вариант Цвет ячейки, Цвет шрифта или Значок ячейки.

  5. В разделе Порядок выберите порядок сортировки. Выполните одно из следующих действий.

    • Для текстовых значений выберите От А до Я или От Я до А.

    • Для числовых значений выберите По возрастанию или По убыванию.

    • Для дат и времени выберите От старых к новым или От новых к старым.

    • Чтобы выполнить сортировку по настраиваемому списку, выберите пункт Настраиваемый список.

  6. Для добавления к сортировке следующего столбца нажмите кнопку Добавить уровень, а затем повторите шаги с третьего по пятый.

    Щелкните команду "Добавить уровень"

  7. Чтобы скопировать сортируемый столбец, выделите его и нажмите кнопку Копировать уровень.

  8. Чтобы удалить столбец для сортировки, выделите соответствующую запись и нажмите Удалить уровень.

    Примечание: В списке необходимо оставить хотя бы одну запись.

  9. Чтобы изменить порядок сортировки столбцов, выделите запись нужного столбца и щелкните стрелку Вверх или Вниз рядом с кнопкой Параметры.

    Столбцы с более высокой позицией в списке будут отсортированы раньше, чем столбцы с более низкой позицией.

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

  1. Выделите ячейку в столбце, который требуется отсортировать.

  2. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Сортировка.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  3. В диалоговом окне Сортировка в группе Столбец в поле Сортировать по выберите столбец, по которому необходимо выполнить сортировку.

    В группе "Столбец" выберите нужный вариант в списке "Сортировать по"

  4. В группе Сортировка, выберите вариант Цвет ячейки, Цвет шрифта или Значок ячейки.

    В группе "Сортировать" выберите нужный вариант

  5. В группе Порядок щелкните стрелку рядом с кнопкой, а затем в зависимости от типа формата выберите цвет шрифта, цвет заливки ячейки или значок ячейки.

  6. Затем выберите последовательность сортировки. Выполните одно из указанных ниже действий.

    • Чтобы переместить цвет ячейки, цвет шрифта или значок вверх или влево, выберите вариант Сверху для сортировки по столбцу и Слева для сортировки по строке.

    • Чтобы переместить цвет ячейки, цвет шрифта или значок вниз или вправо, выберите вариант Снизу для сортировки по столбцу и Справа для сортировки по строке.

      Примечание: Порядка цветов ячеек, цветов шрифта или значков по умолчанию не существует. Вы должны самостоятельно определить порядок для каждой сортировки.

  7. Чтобы задать следующий цвет ячейки, цвет шрифта или значок для сортировки, нажмите кнопку Добавить уровень и повторите шаги 3–5.

    Убедитесь в том, что в поле Затем по выбран тот же столбец и что сделан тот же выбор в поле Порядок.

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

Для сортировки в порядке, заданном пользователем, можно применять настраиваемые списки. Например, столбец может содержать значения, по которым вы хотите выполнить сортировку, такие как «Высокий», «Средний» и «Низкий». Как настроить сортировку, чтобы сначала отображались значения «Высокий», затем — «Средний», а в конце — «Низкий»? Если отсортировать их в алфавитном порядке (от А до Я), то значения «Высокий» будут отображаться вверху, но за ними окажутся значения «Низкий», а не «Средний». А при сортировке от Я до А значения «Средний» окажутся в самом верху. В действительности значения «Средний» всегда, независимо от порядка сортировки должны отображаться в середине. Вы можете решить эту проблему, создав настраиваемый список.

  1. При необходимости создайте настраиваемый список.

    1. В диапазоне ячеек введите значения, по которым необходимо выполнить сортировку, в нужном порядке, например в порядке убывания.

      Создание списка, отсортированного по убыванию, из диапазона ячеек

    2. Выделите диапазон ячеек, в которые были введены значения. В описанном выше примере выделите ячейки A1:A3.

    3. Выберите пункты Файл > Параметры > Дополнительно > Общие > Изменить списки, затем в диалоговом окне Списки нажмите кнопку Импорт и дважды нажмите кнопку ОК.

      Примечания: 

      • Пользовательские списки можно создавать только на основе значений (текстовых, числовых или значений даты и времени). Создать настраиваемый список на основе формата (цвета ячейки, цвета шрифта или значков) нельзя.

      • Максимальная длина пользовательского списка составляет 255 символов, и первое значение не может начинаться с цифры.

  2. Выделите ячейку в столбце, который требуется отсортировать.

  3. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Сортировка.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  4. В диалоговом окне Сортировка в группе Столбец в поле Сортировать по или Затем по укажите столбец для сортировки по настраиваемому списку.

  5. В поле Порядок выберите пункт Настраиваемый список.

  6. В диалоговом окне Списки выберите нужный список. В нашем примере нужно выбрать список Высокий, Средний, Низкий.

  7. Нажмите кнопку ОК.

  1. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Сортировка.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  2. В диалоговом окне Сортировка нажмите кнопку Параметры.

    Нажмите кнопку "Сортировка", чтобы открыть диалоговое окно "Сортировка"

  3. В диалоговом окне Параметры сортировки установите флажок Учитывать регистр.

    В диалоговом окне "Сортировка" нажмите кнопку "Параметры"

  4. Дважды нажмите кнопку ОК.

Как правило, сортировка выполняется сверху вниз, однако значения можно отсортировать слева направо.

Примечание: Таблицы не поддерживают возможность сортировки слева направо. Сначала преобразуйте таблицу в диапазон: выделите в ней любую ячейку и выберите пункты Работа с таблицами > Преобразовать в диапазон.

  1. Выделите любую ячейку в сортируемом диапазоне.

  2. На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Сортировка.

    Группа ''Сортировка и фильтр'' на вкладке ''Данные''

  3. В диалоговом окне Сортировка нажмите кнопку Параметры.

    Нажмите кнопку "Сортировка", чтобы открыть диалоговое окно "Сортировка"

  4. В диалоговом окне Параметры сортировки в группе Сортировать выберите пункт столбцы диапазона, а затем нажмите кнопку ОК.

    В поле "Параметры сортировки" щелкните пункт "Слева направо"

  5. В группе Строка в поле Сортировка по выберите строку для сортировки. Обычно это строка 1 (если требуется выполнить сортировку по строке заголовка).

    Выберите строку для сортировки

    Совет: Если строка заголовка содержит текст, а вам нужно отсортировать столбцы по числам, добавьте новую строку над диапазоном данных и укажите в ней числа в нужном порядке.

  6. Чтобы выполнить сортировку по значению, выберите один из вариантов в раскрывающемся списке «Порядок».

    1. Для текстовых значений выберите вариант От А до Я или От Я до А.

    2. Для числовых значений выберите По возрастанию или По убыванию.

    3. Для дат и времени выберите От старых к новым или От новых к старым.

  7. Чтобы выполнить сортировку по цвету ячейки, цвету шрифта или значку, сделайте следующее.

    1. В группе Сортировка, выберите вариант Цвет ячейки, Цвет шрифта или Значок ячейки.

    2. В списке Порядок выберите цвет ячейки, цвет шрифта или значок, а затем — вариант Слева или Справа.

Примечание: При сортировке строк, являющихся частью структуры листа, в Excel сортируются группы наивысшего уровня (уровень 1) таким образом, что порядок расположения строк или столбцов детализации не изменится, даже если они скрыты.

Чтобы выполнить сортировку по части значения в столбце, например части кода (789-WDG-34), фамилии (Регина Покровская) или имени (Покровская Регина), сначала необходимо разбить столбец на две или несколько частей таким образом, чтобы значение, по которому нужно выполнить сортировку, оказалось в собственном столбце. Чтобы разбить значения в ячейке на части, можно воспользоваться текстовыми функциями или мастером текстов. Дополнительные сведения и примеры см. в статьях Разбивка текста по разным ячейкам и Разбивка текста по разным столбцам с помощью функций.

Предупреждение: Вы можете отсортировать значения в диапазоне, который является частью другого диапазона, однако делать это не рекомендуется, так как в результате будет разорвана связь между отсортированным диапазоном и исходными данными. Если отсортировать данные, как показано ниже, выбранные сотрудники окажутся связаны с другими отделами.

Пример сортировки ячеек в диапазоне, который является частью большего диапазона

К счастью, Excel выдает предупреждение, если обнаруживает подобную попытку:

Выберите параметр "сортировать в пределах указанного выделения"

Если вы не собирались сортировать данные таким образом, выберите вариант автоматически расширить выделенный диапазон, в противном случае — сортировать в пределах указанного выделения.

Если результат не соответствует желаемому, нажмите кнопку Отменить Кнопка "Отменить".

Примечание: Отсортировать подобным образом значения в таблице нельзя.

Если результаты сортировки данных не соответствуют ожиданиям, сделайте следующее.

Проверьте, не изменились ли значения, возвращаемые формулами    Если сортируемые данные содержат одну или несколько формул, значения, возвращаемые ими, при пересчете листа могут измениться. В этом случае примените сортировку повторно, чтобы получить актуальные результаты.

Перед сортировкой отобразите скрытые строки и столбцы    При сортировке по столбцам скрытые строки не перемещаются, а при сортировке по строкам не перемещаются скрытые столбцы. Перед сортировкой данных целесообразно отобразить скрытые строки и столбцы.

Проверьте текущий параметр языкового стандарта    Порядок сортировки зависит от выбранного языка. Убедитесь в том, что на панели управления в разделе Региональные параметры или Язык и региональные стандарты задан правильный языковой стандарт. Сведения о том, как изменить параметр языкового стандарта, см. в справке Microsoft Windows.

Вводите заголовки столбцов только в одну строку    Если необходимо использовать заголовки из нескольких строк, установите перенос слов в ячейке.

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

  • Чтобы исключить из сортировки первую строку данных (заголовок столбца), на вкладке Главная в группе Редактирование нажмите кнопку Сортировка и фильтр, выберите команду Настраиваемая сортировка и установите флажок Мои данные содержат заголовки.

  • Чтобы включить в сортировку первую строку данных (так как она не является заголовком столбца), на вкладке Главная в группе Редактирование нажмите кнопку Сортировка и фильтр, выберите команду Настраиваемая сортировка и снимите флажок Мои данные содержат заголовки.

Если данные отформатированы как таблица Excel, можно быстро выполнить их сортировку и фильтрацию с помощью кнопок фильтрации в строке заголовков.

  1. Если данные еще не содержатся в таблице, нужно отформатировать их как таблицу. Это приведет к автоматическому добавлению кнопки фильтрации вверху каждого столбца таблицы.

  2. Нажмите кнопку фильтрации в верхней части нужного столбца и выберите необходимый порядок сортировки.

    Использование фильтра таблицы в Excel для сортировки по возрастанию или убыванию

  3. Чтобы отменить сортировку, нажмите кнопку Отменить на вкладке Главная.

    Отмена предыдущей сортировки с помощью кнопки "Отменить" в Excel в Интернете на вкладке "Главная"

  1. Выберите ячейку в столбце, по которому будет выполняться сортировка.

    • Если на листе есть строка заголовков, выберите один заголовок, по которому нужно отсортировать данные, например Население.

      Сортировка данных с помощью строки заголовков

    • Если строки заголовков нет, выберите верхнюю ячейку в столбце, по которому нужно выполнить сортировку, например ячейку со значением 634535.

      Сортировка данных с помощью строки заголовков

  2. На вкладке Данные выберите один из способов сортировки:

    • По возрастанию: сортировка от A до Я, от наименьшего значения до наибольшего или от самой ранней даты до самой поздней.

    • По убыванию: сортировка от Я до А, от наибольшего значения до наименьшего или от самой поздней даты до самой ранней.

Кнопки "Сортировка по возрастанию" и "Сортировка по убыванию" на вкладке "Данные"

Например, у вас есть таблица со столбцами «Отдел» и «Сотрудник». Можно сначала выполнить сортировку по столбцу «Отдел» для группировки всех сотрудников по отделам, а затем — по имени для расположения имен сотрудников каждого отдела в алфавитном порядке. 

Выберите любую ячейку в диапазоне данных.

  1. На вкладке Данные в группе Сортировка и фильтрация нажмите кнопку Настраиваемая сортировка.

    Параметр настраиваемой сортировки в Excel на вкладке "Данные"

  2. В диалоговом окне Настраиваемая сортировка в группе Столбец в поле Сортировка выберите первый столбец, по которому необходимо выполнить сортировку.

    Диалоговое окно "Настраиваемая сортировка" с выделенным вариантом "Имя" для столбца в строке "Сортировка"

    Примечание: Меню Сортировка отключено, так как оно пока не поддерживается. В настоящее время вы можете изменить сортировку в классическом приложении Excel.

  3. В разделе Порядок выберите порядок сортировки.

    • По возрастанию: сортировка от A до Я, от наименьшего значения до наибольшего или от самой ранней даты до самой поздней.

    • По убыванию: сортировка от Я до А, от наибольшего значения до наименьшего или от самой поздней даты до самой ранней.

  4. Чтобы добавить еще один столбец для сортировки, выберите команду Добавить и повторите шаги 5 и 6.

    После нажатия кнопки "Добавить" появится еще один уровень сортировки в списке рядом с полем "Затем"

  5. Чтобы изменить порядок сортировки столбцов, выделите запись нужного столбца и щелкните стрелку Вверх или Вниз рядом с кнопкой Параметры.

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

  1. Выделите ячейку в столбце, который требуется отсортировать.

  2. На вкладке Данные в группе Сортировка и фильтрация нажмите кнопку Настраиваемая сортировка.Параметр настраиваемой сортировки в Excel на вкладке "Данные"

  3. В диалоговом окне Настраиваемая сортировка в группе Столбцы выберите столбец, по которому необходимо выполнить сортировку.Выбор столбца в диалоговом окне "Настраиваемая сортировка"

  4. В группе Сортировка выберите вариант Цвет ячейки, Цвет шрифта или Значок условного форматирования.

  5. В группе Порядок выберите нужный порядок (отображаемые параметры зависят от используемого формата). Затем выберите цвет ячейки, цвет шрифта или значок ячейки.

  6. Далее выберите способ сортировки, перемещая цвет ячейки, цвет шрифта или значок:

    Примечание: Порядка цветов ячеек, цветов шрифта или значков по умолчанию не существует. Вы должны самостоятельно определить порядок для каждой сортировки.

    • Перемещение вверх или влево: выберите параметр Сверху для сортировки столбца и Слева для сортировки строки.

    • Перемещение вниз или вправо: выберите параметр Снизу для сортировки столбца и Справа для сортировки строки.

  7. Чтобы задать следующий цвет ячейки, цвет шрифта или значок для сортировки, нажмите кнопку Добавить уровень и повторите шаги 1–5.

  • Убедитесь, что столбец в поле Затем по и выбор в поле Порядок совпадают.

  • Повторите эти шаги для каждого дополнительного цвета ячейки, цвета шрифта или значка, которые нужно включить в сортировку.

  1. На вкладке Данные в группе Сортировка и фильтрация нажмите кнопку Настраиваемая сортировка.

    Параметры настраиваемой сортировки в Excel на вкладке "Данные"

  2. В диалоговом окне Настраиваемая сортировка нажмите кнопку Параметры.

    Диалоговое окно "Настраиваемая сортировка" с выделенной кнопкой "Параметры"

  3. В меню Параметры установите флажок С учетом регистра.

    Диалоговое окно "Настраиваемая сортировка" с выделенным параметром "С учетом регистра"

  4. Нажмите кнопку ОК.

Как правило, сортировка выполняется сверху вниз, однако значения можно отсортировать слева направо.

Примечание: Таблицы не поддерживают возможность сортировки слева направо. Сначала преобразуйте таблицу в диапазон: выделите в ней любую ячейку и выберите пункты Работа с таблицами > Преобразовать в диапазон

  1. Выделите любую ячейку в сортируемом диапазоне.

  2. На вкладке Данные в группе Сортировка и фильтрация нажмите кнопку Настраиваемая сортировка.

    Параметры настраиваемой сортировки в Excel на вкладке "Данные"

  3. В диалоговом окне «Настраиваемая сортировка» нажмите кнопку Параметры.Диалоговое окно "Настраиваемая сортировка" с выделенной кнопкой "Параметры"

  4. В разделе Ориентация выберите вариант Сортировать слева направо В диалоговом окне "Настраиваемая сортировка" откройте меню "Параметры" и выберите сортировку слева направо

  5. В группе Строка в раскрывающемся списке Сортировка выберите строку для сортировки. Обычно это строка 1 (если требуется выполнить сортировку по строке заголовка).   Раскрывающийся список строки в диалоговом окне "Настраиваемая сортировка" открыт при выборе сортировки слева направо

  6. Чтобы выполнить сортировку по значению, выберите один из вариантов в раскрывающемся списке Порядок.

    • Сортировка по возрастанию: сортировка от A до Я, от наименьшего значения до наибольшего или от самой ранней даты до самой поздней.

    • Сортировка по убыванию: сортировка от Я до А, от наибольшего значения до наименьшего или от самой поздней даты до самой ранней.

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Для автоматической сортировки данных используйте функции СОРТ и СОРТПО.

Содержание

  • Вариант 1: Microsoft Excel 2007 – 2021
    • Способ 1: Сортировка по алфавиту
    • Способ 2: Настраиваемая сортировка
    • Способ 3: Применение функций
  • Вариант 2: Microsoft Excel 2003
  • Вопросы и ответы

как_отсортировать_данные_в_таблице_excel_logo

Важно! Сортировка данных в Microsoft Excel — это базовая функция табличного редактора, доступная во всех версиях программы. Но в статье будут отдельно рассматриваться редакции 2007 – 2021 и 2003 годов, так как у них наблюдаются существенные различия в интерфейсе.

Читайте также: Функции сортировки и фильтрации данных в Microsoft Excel

Вариант 1: Microsoft Excel 2007 – 2021

Начиная с 2007 года, кампанией Microsoft было разработано множество версий табличного процессора Excel. Нововведения в основном заключались в изменении визуального оформления программы и добавлении новых функций, поэтому сортировка данных во всех редакциях выполняется одинаково.

Примечание! Все действия, представленные в статье, будут производиться в Microsoft Excel 2021. Это следует учитывать, так как в других версиях есть отличия в наименовании и месторасположении некоторых элементов интерфейса. В остальном же описываемые способы решения поставленной задачи являются актуальными.

Способ 1: Сортировка по алфавиту

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

как_отсортировать_данные_в_таблице_excel_01

Допустим, есть необходимость выполнить сортировку продуктов по алфавиту. В таком случае, зажав левую кнопку мыши, выделите информацию в первом столбце, после чего вызовите контекстное меню, кликнув по диапазону правой. В появившемся списке опций наведите курсор на пункт «Сортировка», а затем щелкните «Сортировка от А до Я» или «Сортировка от Я до А» (в зависимости от поставленной задачи).

как_отсортировать_данные_в_таблице_excel_02

Появится диалоговое окно, в котором необходимо определиться, нужно ли сортировать всю таблицу целиком или требуется изменить значения только в выделенном диапазоне. В первом случае следует установить переключатель в положение «автоматически расширить выделенный диапазон» и кликнуть по кнопке «Сортировка», а во втором — выбрать опцию «сортировать в пределах указанного выделения».

как_отсортировать_данные_в_таблице_excel_03

Если использовать первый вариант, подразумевающий сортировку всех данных таблицы, относительно алфавитному порядку позиций в столбце «Список продуктов», то результат будет таким, который продемонстрирован на изображении ниже.

как_отсортировать_данные_в_таблице_excel_04

Если не расширять диапазон данных для сортировки, тогда только первый столбец будет подвергнут изменениям.

Lumpics.ru

как_отсортировать_данные_в_таблице_excel_05

Это только один способ быстрой сортировки данных в алфавитном порядке, дополнительные решения представлены в отдельной статье на нашем сайте. Также рекомендуем обратить внимание на материал, посвященный теме сортировки чисел, если такие манипуляции необходимо будет проводить.

Подробнее:
Сортировка по алфавиту в Microsoft Excel
Сортировка чисел по возрастанию в Microsoft Excel

как_отсортировать_данные_в_таблице_excel_06

Способ 2: Настраиваемая сортировка

Если данные необходимо отсортировать с применением дополнительных аргументов, а не только по алфавиту, потребуется воспользоваться специальным инструментом. Запустить его меню можно несколькими способами, первый подразумевает переход на вкладку «Данные» с последующим нажатием по пункту «Сортировка».

как_отсортировать_данные_в_таблице_excel_07

В качестве альтернативы поставленную задачу можно выполнить через контекстное меню, вызываемое правой кнопкой мыши. Для этого кликните по любой ячейке таблицы и в появившемся списке опций наведите курсор на строку «Сортировка», а затем щелкните по пункту «Настраиваемая сортировка».

как_отсортировать_данные_в_таблице_excel_08

После проделанных действий откроется дополнительное окно, в котором производится ввод параметров для сортировки данных таблицы.

Важно! Если требуется изменить порядок строк или столбцов только определенной части таблицы, перед выполнением ранее рассмотренных инструкций необходимо выделить нужную область данных и при запросе расширения диапазона выбрать параметр «сортировать в пределах указанного выделения».

Использование предустановленных шаблонов

Откройте окно настраиваемой сортировки и задайте предварительные параметры. Если редактируемая таблица содержит заголовки, установите отметку у строки «Мои данные содержат заголовки», которая находится в верхнем правом углу.

как_отсортировать_данные_в_таблице_excel_09

Затем кликните по кнопке «Параметры», расположенной рядом, и в открывшемся меню выберите тип сортировки: «строки диапазона» или «столбцы диапазона». Если обработка данных предполагает четкое соответствие регистру, поставьте галочку рядом с этим пунктом. По завершении щелкните по кнопке «ОК», чтобы применить заданные параметры.

как_отсортировать_данные_в_таблице_excel_10

Настраиваемая сортировка позволяет редактировать таблицу с использованием нескольких параметров одновременно. Таким образом можно обработать большой объем информации, не только выровняв в алфавитном порядке, но и применив фильтр по цветам. Всего есть четыре параметра сортировки:

  1. Значения ячеек. Позволяет изменить расположение данных в таблице по содержимому. По умолчанию доступно две опции — «От А до Я» и «От Я до А», но при необходимости можно настроить список, тем самым разместив данные по дням недели, месяцам и так далее.
  2. Цвет ячейки. Если в таблице есть цветовое выделение данных, всю информацию можно отсортировать с учетом этой особенности. Программа автоматически проверит наличие использующихся цветов и предложит выбрать нужный в соответствующем выпадающем списке.
  3. Цвет шрифта. Аналогичным образом можно выполнить сортировку, взяв за основу цвет используемого шрифта.
  4. Значок условного форматирования. Если при заполнении таблицы было применено условное форматирование, редактирование можно произвести с учетом этой особенности. Обратите внимание, что на нашем сайте есть отдельная статья, в которой демонстрируются все возможности такой опции.

    Подробнее: Условное форматирование: инструмент Microsoft Excel для визуализации данных

  5. как_отсортировать_данные_в_таблице_excel_11

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

  1. Если необходимо выполнить сортировку по нескольким столбцам, параметрам и порядковым данным, щелкните по кнопке «Добавить уровень», чтобы дополнить список в основной области окна еще одной строкой. Рядом располагается опция «Удалить уровень», предназначенная для очистки списка.
  2. как_отсортировать_данные_в_таблице_excel_12

  3. Разместив необходимое количество строк, определите все столбцы, которые будут отформатированы. Делается это в выпадающих списках «Столбец». Обратите внимание, что один и тот же столбец таблицы можно сортировать несколько раз.
  4. как_отсортировать_данные_в_таблице_excel_13

  5. В выпадающих списках «Сортировка» определите один из четырех параметров, значения которых описывались в статье ранее.
  6. как_отсортировать_данные_в_таблице_excel_14

  7. В зависимости от выбранных параметров в столбце «Порядок» выберите для каждого из них сценарий выполнения. Например, при обработке значений ячеек можно выполнить сортировку по алфавиту, а при обращении к цвету шрифта выбрать в соответствующем списке нужную окраску. Обратите внимание, что в некоторых случаях требуется указать месторасположение проверяемых данных («Сверху» или «Снизу»), которое они займут после выполнения сортировки.
  8. как_отсортировать_данные_в_таблице_excel_15

Примечание! При одновременном использовании нескольких уровней сортировки обработка будет происходить поочередно. Таким образом сначала применятся параметры, указанные в первой строке, затем во второй, третьей и так далее.

как_отсортировать_данные_в_таблице_excel_16

Имеются также некоторые дополнительные возможности настройки сортировки, которые позволяют редактировать список задаваемых параметров. В верхней части открытого окна есть кнопка «Копировать уровень», она будет полезна при необходимости добавить уже имеющуюся строку. Стрелки, расположенные правее, служат для перемещения параметров вверх или вниз, соответственно. Перед их использованием важно выделить нужную строку, кликнув по ней левой кнопкой мыши.

как_отсортировать_данные_в_таблице_excel_17

Когда все настройки будут завершены, нажмите по кнопке «ОК» для их применения. Но прежде рекомендуем внимательно перепроверить выбранные параметры.

как_отсортировать_данные_в_таблице_excel_18

Создание собственного списка

Как уже упоминалось ранее, сортировать данные в таблице можно не только в алфавитном порядке, но и по дням неделям, месяцам и так далее. Для этого необходимо в окне «Сортировка» выбрать необходимый для изменения столбец, указать параметр «Значения ячеек», а затем в выпадающем списке «Порядок» щелкнуть по пункту «Настраиваемый список».

как_отсортировать_данные_в_таблице_excel_19

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

Если для более точной сортировки необходимо использовать индивидуальный список, создать его можно самостоятельно. Для этого следует в левой рабочей области выбрать пункт «НОВЫЙ СПИСОК», после чего в поле «Элементы списка» начать вводить текст, разделяя каждую позицию новым абзацем с помощью клавиши Enter. Вписав все необходимые данные, нажмите по кнопке «Добавить», чтобы изменения зарегистрировались в программе.

как_отсортировать_данные_в_таблице_excel_20

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

Способ 3: Применение функций

В случае обработки чисел для сортировки данных можно воспользоваться специальными формулами, которые доступны в Microsoft Excel по умолчанию. Они позволяют изменять порядок значений в отдельно взятом массиве, но результат будет выводиться в другом диапазоне таблицы. Стоит также отметить, что при редактировании исходных данных вычисления, произведенные с помощью формул, будут тоже корректироваться автоматически.

Сортировка посредством формул выполняется с помощью двух функций — НАИМЕНЬШИЙ и НАИБОЛЬШИЙ. Логика их работы аналогична друг другу, отличается только результат. В первом случае будет выводиться диапазон исходных данных отсортированный от меньшего числа к большему, во втором — наоборот.

Установите курсор в ячейку, с которой будет начинаться создание нового списка. Кликните по строке формул и начните вводить функцию следующего образца:

=НАИМЕНЬШИЙ(X:X;СТРОКА(X1)) или =НАИБОЛЬШИЙ(X:X;СТРОКА(X1))

Вместо X впишите букву столбца, в котором находится информация для обработки, остальную часть формулы не изменяйте. Затем нажмите по клавише Enter, чтобы произошел расчет первого наименьшего или наибольшего значения в заданном диапазоне. Чтобы продолжить расчет остальных данных, наведите курсор в нижний правый угол ячейки и протяните его вниз.

как_отсортировать_данные_в_таблице_excel_21

Вариант 2: Microsoft Excel 2003

Табличный процессор 2003 года имеет все вышеперечисленные функции для сортировки данных, только отличается интерфейсом и месторасположением некоторых опций.

Примечание! Инструкция по работе функций НАИМЕНЬШИЙ и НАИБОЛЬШИЙ не будет рассмотрена, так как ничем не отличается от ранее представленной в статье.

Стандартная сортировка в алфавитном порядке или от меньшего к большему производится похожим образом, но только посредством панели инструментов — в контекстном меню соответствующих опций нет. Для этого выделите столбец данных, порядок которых нужно изменить, после чего щелкните по пиктограмме «Сортировка по возрастанию» или «Сортировка по убыванию».

как_отсортировать_данные_в_таблице_excel_22

Настраиваемая сортировка в Microsoft Excel 2003 тоже есть, но она имеет меньший набор возможностей, позволяет только менять порядок исходных данных по возрастанию или убыванию. Чтобы этим воспользоваться, нужно выделить таблицу, раскрыть меню «Данные» и кликнуть по пункту «Сортировка».

как_отсортировать_данные_в_таблице_excel_23

Затем необходимо настроить последовательность сортировки. Для этого в каждом выпадающем списке выберите столбец, который будет изменяться, а следом установите параметр «по возрастанию» или «по убыванию». Щелкните по кнопке «ОК», чтобы применить заданные настройки.

как_отсортировать_данные_в_таблице_excel_24

Также можно задать дополнительные параметры сортировки, нажав по кнопке «Параметры». В открывшемся окне из выпадающего списка «Сортировка по первому ключу» выберите подходящее значение, после чего при необходимости установите отметку «Учитывать регистр».

как_отсортировать_данные_в_таблице_excel_25

Примечание! В отличие от Microsoft Excel 2007 – 2021, добавлять собственные списки ключей в программе 2003 года нельзя, поэтому доступны лишь предустановленные — дни недели и месяцы.

Добрый день!
Я тоже, беря пример с Вас, позволю без примера…

Итак, Интегрировать в Excel просто: Alt+F11 и Вы попадаете в среду разработки макросов VBA. Ну или на ярлычке листа ПКМ (правой кнопкой мышки)  и кликнуть по Исходный текст

Далее в редакторе пишем:
Sub SortNeTarKakNado()
   ‘Между этими «субчиками» и разместим код макроса
End Sub

собственно сам мкрос, что он делает? Пробегает по ячейкам выделенного блока ячеек (ну, тут наверное следует определять что собственно выделено: часть строки — столбца или часть нескольких строк — столбцов?!). Значения каждой ячейки разбивает по параметру <br>, в одномерный массив. Массив сортирует, ну скажем «методом пузырька». Результат сортировки записывает в ячейку (ту же откуда была взята исходная информация, либо правее — левее -выше — ниже исходной ячейки).

Вот пример функции сортирующей массив, причем одномерный массив в данном случае — частный случай. Эта функция может сортировать и двумерные массивы:

Function sortArr(spisok() As String, nomColSort As Integer, glubina As Integer)
    Dim rrBl() As String
    Dim endArr As Long, i As Long, j As Long, k As Long

    i = 0
    j = 0
    k = 0
    endArr = 0

        If glubina > 0 Then
        endArr = UBound(spisok, glubina)
        For i = 1 To endArr
            For j = endArr To i Step -1
                If spisok(nomColSort, j - 1) > spisok(nomColSort, j) Then
                    k = 0
                    For k = LBound(spisok, 1) To UBound(spisok, 1)
                        ReDim Preserve rrBl(k)
                        rrBl(k) = spisok(k, j - 1)
                    Next k

                    k = 0
                    For k = LBound(spisok, 1) To UBound(spisok, 1)
                        spisok(k, j - 1) = spisok(k, j)
                        spisok(k, j) = rrBl(k)
                    Next k
                End If
            Next j
        Next i
    Else
        endArr = UBound(spisok)
        For i = 1 To endArr
            For j = endArr To i Step -1
                If spisok(j - 1) > spisok(j) Then
                    tmp = spisok(j - 1)
                    spisok(j - 1) = spisok(j)
                    spisok(j) = tmp
                End If
            Next j
        Next i
    End If

        sortArr = spisok

        i = 0
    j = 0
    k = 0
    Erase rrBl
    Erase spisok
End Function

И так, если будут вопросы при реализации — пишите, постараюсь ответить.

Понравилась статья? Поделить с друзьями:
  • Сортировка внутри сортировки excel
  • Сортировка в столбце листа в excel
  • Сортировка в сводной таблице excel от большего к меньшему в итогах
  • Сортировка в порядке убывания excel
  • Сортировка в особом порядке excel