Форум программистов, компьютерный форум, киберфорум
MS Office Excel
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
0 / 0 / 0
Регистрация: 24.07.2017
Сообщений: 15
1

Сортировка по нескольким колонкам

01.12.2017, 08:41. Показов 2408. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Необходима сортировка по нескольким колонкам.
Нашел решение но оно мне не нравится.
Есть ли у кого предложения по оптимальному алгоритму расчета.

Приложил скриншот и экселевский файл
Спасибо.
Миниатюры
Сортировка по нескольким колонкам  
Вложения
Тип файла: xlsx 2.xlsx (8.8 Кб, 131 просмотров)
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.12.2017, 08:41
Ответы с готовыми решениями:

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

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

Сортировка в DataGridView по нескольким колонкам
Привет всем! Подскажите, пожалуйста, как реализовать средствами C# или VB программную сортировку...

Сортировка по нескольким колонкам листа Excel
Задача отсортировать при помощи VBScript по двум колонкам лист Excel, поиск ничего не дал :( Если...

8
15145 / 6418 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.12.2017, 08:51 2
pashaq, а чем стандартная сортировка не устраивает?
Миниатюры
Сортировка по нескольким колонкам  
0
0 / 0 / 0
Регистрация: 24.07.2017
Сообщений: 15
01.12.2017, 09:01  [ТС] 3
Казанский, в моей задаче много расчетов (это только часть задачи), и чтобы обычные пользователи не лазили куда не следует, не поломали, необходима автоматизация.
0
92 / 69 / 16
Регистрация: 22.01.2010
Сообщений: 311
01.12.2017, 09:20 4
Цитата Сообщение от pashaq Посмотреть сообщение
предложения по оптимальному алгоритму расчета.
И в чем проблема? - Включите авто фильтр или оформляйте данные "умной таблицей" да и сортируйте по 4 полю...
0
0 / 0 / 0
Регистрация: 24.07.2017
Сообщений: 15
01.12.2017, 11:03  [ТС] 5
Попробую. Но решение задачи через формулы не снимаю

Добавлено через 1 час 27 минут
Не подходит. У меня может меняться количество столбцов.
И очень уж много их (40-60). И там где будет использоваться эксель 2007
0
472 / 161 / 80
Регистрация: 07.10.2015
Сообщений: 379
01.12.2017, 11:56 6
pashaq, без промежуточного столбца пока что не получается
Вложения
Тип файла: xlsx 2.xlsx (10.1 Кб, 8 просмотров)
2
0 / 0 / 0
Регистрация: 24.07.2017
Сообщений: 15
01.12.2017, 12:58  [ТС] 7
Ruella, Спасибо, за попытку.
Количество строк около 1000 и ваше решение не подойдет
Моя ошибка, я не совсем корректно формализовал задачу.

Пошел по пути написания кода на VBA.
Поиск решения в процессе.

Но по прежнему жду ваших предложений
0
Динохромный
1375 / 749 / 271
Регистрация: 22.12.2015
Сообщений: 2,341
01.12.2017, 16:42 8
Лучший ответ Сообщение было отмечено pashaq как решение

Решение

Цитата Сообщение от pashaq Посмотреть сообщение
Количество строк около 1000 и ваше решение не подойдет
Почему вы так решили? Решение будет работать. Другой вопрос, что 60 ячеек вбивать будет неудобно.
Цитата Сообщение от pashaq Посмотреть сообщение
Моя ошибка, я не совсем корректно формализовал задачу.
Ваша ошибка, что вы сформулировали другую задачу, и выложили неактуальный пример - на 57 столбиков меньше, чем требуется.
Цитата Сообщение от pashaq Посмотреть сообщение
У меня может меняться количество столбцов.
И очень уж много их (40-60).
Очевидный вопрос - может ли в вашем наборе данных одна и та же комбинация встречаться несколько раз, и если да - что должно быть в результатах.
Второй вопрос - какое максимальное число может быть вписано в ячейки с параметрами.

Исходя из того, что в вашем примери дубликаты комбинаций не встречаются, а параметры лежат в пределах 0-9, можно воспользоваться функцией ниже. Код нужно скопировать в модуль.
В вашем примере вбейте в ячейку Е4 формулу =IndexSmall($B$4:$D$7;A4) и протяните вниз.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Public Function IndexSmall(ByVal rngData As Range, ByVal k As Long) As Long
    Dim i As Integer, j As Long, strTxt As String
    Dim arrVal() As Long
    ReDim arrVal(1 To rngData.Rows.Count)
    
    For j = 1 To rngData.Rows.Count
        For i = 1 To rngData.Columns.Count
            strTxt = strTxt & rngData.Cells(j, i).Value
        Next i
        arrVal(j) = Val(strTxt)
        strTxt = ""
    Next j
    IndexSmall = Application.WorksheetFunction.Match(Application.WorksheetFunction.Small(arrVal, k), arrVal, 0)
End Function
2
0 / 0 / 0
Регистрация: 24.07.2017
Сообщений: 15
02.12.2017, 12:43  [ТС] 9
Цитата Сообщение от Dinoxromniy Посмотреть сообщение
параметры лежат в пределах 0-9
Параметры в пределах 0-9999.
Но небольшая модификация кода смогла решить этот вопрос.
Спасибо! то что надо.
0
02.12.2017, 12:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.12.2017, 12:43
Помогаю со студенческими работами здесь

Выборка по нескольким колонкам в поле со списком
Здравствуйте! Есть поле со списком с несколькими колонками, можно ли сделать чтобы выборка шла...

Получить найденную строку ТЗ по нескольким колонкам
Метод найти я так понял не работает написал такой код ПараметрыОтбора = Новый Структура;...

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

Найти и сложить дубликаты по нескольким колонкам, затем удалить
Здравствуйте уважаемые форумчане! Нужна помощь в правке макроса. Есть таблица: ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru