Численная сортировка нескольких столбцов Excel по отдельности - PullRequest
0 голосов
/ 25 мая 2018

У меня есть 52 рандомизированных набора из 7 чисел в столбцах, которые мне нужно отсортировать численно, но при выделении всех данных и попытке отсортировать их от наименьшего к наибольшему сортировка применяется только к первому столбцу -

Screenshot for Reference

1 Ответ

0 голосов
/ 25 мая 2018

Excel будет сортировать по крайнему левому полю (или «Столбцу») в вашем выделении и соответственно перемещать соответствующие значения для каждой строки.

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

Option Explicit

Sub SortColumnsIndividually()
    Dim Column As Range
    For Each Column In Selection.Columns
        ActiveSheet.Sort.SortFields.Clear
        ActiveSheet.Sort.SortFields.Add Key:=Column, _
            SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
        With ActiveSheet.Sort
            .SetRange Column
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
    Next Column
End Sub

Почему Excel это сделал?

Это происходит потому, что Excel обрабатывает каждую строку как коллекцию связанных значений ,Например, рассмотрим следующую таблицу:

+-----------+-----------+--------+
| FirstName | LastName  | Salary |
+-----------+-----------+--------+
| Bob       | Smith     |  45000 |
| Jane      | Doe       |  55000 |
| Susan     | Black     |  48000 |
| Frank     | Daniels   |  51000 |
+-----------+-----------+--------+

Скажем, вы хотите отсортировать по окладу от наименьшего к наибольшему.Можно ожидать, что когда Excel перемещает значения зарплаты, он также перемещает связанные Имя и Фамилии, в отличие от сортировки только поля зарплаты.

Таким образом, сортируя эту таблицу по Зарплате в порядке возрастания, вы быожидайте этого результата:

+-----------+-----------+--------+
| FirstName | LastName  | Salary |
+-----------+-----------+--------+
| Bob       | Smith     |  45000 |
| Susan     | Black     |  48000 |
| Frank     | Daniels   |  51000 |
| Jane      | Doe       |  55000 |
+-----------+-----------+--------+

НЕ это (Посмотрите, как имена теперь сопоставляются с разными зарплатами?):

+-----------+-----------+--------+
| FirstName | LastName  | Salary |
+-----------+-----------+--------+
| Bob       | Smith     |  45000 |
| Jane      | Doe       |  48000 |
| Susan     | Black     |  51000 |
| Frank     | Daniels   |  55000 |
+-----------+-----------+--------+

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...