Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.07.2016, 11:59   #1
linguist
Пользователь
 
Регистрация: 08.06.2016
Сообщений: 24
По умолчанию Многоуровневая сортировка таблицы

Добрый день.

Подскажите как можно реализовать макросом автоматическую сортировку таблицы по следующему принципу (см. пример):
1. Сортировка по Уровню
2. Сортировка по Объекту
3. Сортировка по Параметру

Проблема в том, что изначально неизвестно какая будет таблица, т.е. жестко нельзя задать диапазоны сортировки. Можно ли как-то сортировать по первому столбцу? Например, есть объединенная ячейка "Уровень 1", сортировку Объектов нужно произвести только в рамках этой ячейки, далее по тому же принципу сортировать параметр. Еще одна проблема в том, что при объединенных ячейках сортировка не возможна.

В примере Таблица 1 - исходный вариант, Таблица 2 - желаемый результат.

Прикрепляю пример. Надеюсь, что понятно изложил мысль.
Вложения
Тип файла: xlsx Пример.xlsx (10.9 Кб, 17 просмотров)
linguist вне форума Ответить с цитированием
Старый 08.07.2016, 12:29   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

подсказываю, макросом это реализовать так:
1. по всем столбцам разьединить обьединенные ячейки и заполнить ВСЕ значениями из обьединенных ячеек
2. посортировать по колонке 1,2,3
3. по всем столбцам оьединить ячейки с одинаковыми значениями
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 08.07.2016, 13:03   #3
linguist
Пользователь
 
Регистрация: 08.06.2016
Сообщений: 24
По умолчанию

Нет, так не получится, потому что значения второго и третьего столбца должны сортироваться в зависимости от значений первого столбца, грубо говоря, это должно выглядеть так:
Из таблицы:
1 | 6 | 1
1 | 1 | 2
2 | 8 | 3
3 | 4 | 6
3 | 1 | 9
3 | 3 | 5
3 | 1 | 9

Получается таблица:
1 | 1 | 2
1 | 6 | 1
2 | 8 | 3
3 | 1 | 9
3 | 1 | 9
3 | 3 | 5
3 | 4 | 6

Т.е. диапазоны сортировки будут такие:
Сначала сортируем второй столбец из диапазона:
1 | 1 | 2
1 | 6 | 1

Затем из диапазона:
2 | 8 | 3

Затем из диапазона:
3 | 1 | 9
3 | 1 | 9
3 | 3 | 5
3 | 4 | 6

Т.е. смотрим на первый столбец. Но проблема в том, что изначально мы не знаем, сколько ячеек будет в столбце диапазона.
linguist вне форума Ответить с цитированием
Старый 08.07.2016, 13:20   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

1. располагаете на листе, в 3 колонки, данные
1 6 1
1 1 2
2 8 3
3 4 6
3 1 9
3 3 5
3 1 9
2. отмечаете их все
3. лента Данные, кнопка сортировка
4. в открывшемся окне жмите 2 раза кнопку Добавить уровень
5. Сортировка по - указываете первый столбец
6. затем по - втрой
7. затем по - третий
8. жмете Ок

9. изучаете насколько получившийся порядок данных отличен от требуемого Вам
1 1 2
1 6 1
2 8 3
3 1 9
3 1 9
3 3 5
3 4 6
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 08.07.2016, 13:46   #5
linguist
Пользователь
 
Регистрация: 08.06.2016
Сообщений: 24
По умолчанию

Спасибо. То что нужно!
linguist вне форума Ответить с цитированием
Старый 08.07.2016, 13:54   #6
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

имхо
Цитата:
Сообщение от linguist Посмотреть сообщение
Из таблицы:
1 | 6 | 1
1 | 1 | 2
2 | 8 | 3
3 | 4 | 6
3 | 1 | 9
3 | 3 | 5
3 | 1 | 9

Получается таблица:
1 | 1 | 2
1 | 6 | 1
2 | 8 | 3
3 | 1 | 9
3 | 1 | 9
3 | 3 | 5
3 | 4 | 6
согласно совету IgorGO
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.

Последний раз редактировалось Aleksandr H.; 08.07.2016 в 13:54. Причина: поздний пост. ТС уже разобрался
Aleksandr H. вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка таблицы Pilyla Общие вопросы Delphi 0 23.06.2013 23:01
Многоуровневая сортировка списка .Excel qpJIaqpU Фриланс 1 13.12.2012 00:10
Многоуровневая нумерация Trimbl Microsoft Office Excel 0 07.12.2012 04:48
Word. Нестандартное многоуровневая нумерация alzhmu Microsoft Office Word 1 21.06.2011 19:53
сортировка таблицы absbelii Microsoft Office Excel 10 28.02.2011 09:57