Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Умная сортировка - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Умная сортировка (Макросы/Sub)
Умная сортировка
SysUnit Дата: Среда, 16.04.2014, 13:37 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Доброго времени суток!
Подскажите пожалуйста:
Есть список что, кому и сколько нужно (экспорт из другой программы), который очень хотелось бы отсортировать поскольку работать с ним в таком виде очень не просто - в глазах начинает рябить. Было бы удобно разбить список на 4 категории (по степени срочности). Пример файла в приложении.
Уважаемы форумчане, большая просьба помочь, поскольку выполнять такую задачу вручную очень утомительно и дискомфортно физически.

С уважением, SysUnit.
К сообщению приложен файл: 7408293.xls (29.0 Kb) · 6508789.xlsx (10.5 Kb)
 
Ответить
СообщениеДоброго времени суток!
Подскажите пожалуйста:
Есть список что, кому и сколько нужно (экспорт из другой программы), который очень хотелось бы отсортировать поскольку работать с ним в таком виде очень не просто - в глазах начинает рябить. Было бы удобно разбить список на 4 категории (по степени срочности). Пример файла в приложении.
Уважаемы форумчане, большая просьба помочь, поскольку выполнять такую задачу вручную очень утомительно и дискомфортно физически.

С уважением, SysUnit.

Автор - SysUnit
Дата добавления - 16.04.2014 в 13:37
SysUnit Дата: Среда, 16.04.2014, 13:52 | Сообщение № 2
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо за ответ!
В файлах, которые в приложении добавил лист "Результат".

С уважением, SysUnit.
 
Ответить
Сообщение_Boroda_, спасибо за ответ!
В файлах, которые в приложении добавил лист "Результат".

С уважением, SysUnit.

Автор - SysUnit
Дата добавления - 16.04.2014 в 13:52
igrtsk Дата: Среда, 16.04.2014, 14:06 | Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 314
Репутация: 50 ±
Замечаний: 0% ±

Excel 2016
Из файла непонятен приоритет отделов и критерий отбора.
Исходя из каких условий назначается признак "В первую очередь"?
Исходя из количества предметов!?
Т.е. если необходим один карандаш и 29 ластиков в общий отдел :) , то это важнее, чем покупка 15 авторучек в бухгалтерию?


Инструктор по применению лосей в кавалерийских частях РККА
 
Ответить
СообщениеИз файла непонятен приоритет отделов и критерий отбора.
Исходя из каких условий назначается признак "В первую очередь"?
Исходя из количества предметов!?
Т.е. если необходим один карандаш и 29 ластиков в общий отдел :) , то это важнее, чем покупка 15 авторучек в бухгалтерию?

Автор - igrtsk
Дата добавления - 16.04.2014 в 14:06
SysUnit Дата: Среда, 16.04.2014, 14:18 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
igrtsk, спасибо за ответ!
Исходя из каких условий назначается признак "В первую очередь"?

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

С уважением, SysUnit.
 
Ответить
Сообщениеigrtsk, спасибо за ответ!
Исходя из каких условий назначается признак "В первую очередь"?

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

С уважением, SysUnit.

Автор - SysUnit
Дата добавления - 16.04.2014 в 14:18
SysUnit Дата: Среда, 16.04.2014, 15:40 | Сообщение № 5
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Попытался максимально формализовать алгоритм, но, вообще говоря, подойдёт любой алгоритм классификации, главное, чтобы очереди не пустовали.
Классификация работает так: считаем сумму для каждого значения:
Общий отдел 30
Отдел кадров 24
....
Глав. Бух. 12

Находим максимум (30), минимум (12), середину (21) и шаг (Макс - Мин / 4 = 4.5)
Записываем в каждую группу по одному значению (для максимума и минимума они есть автоматически, а для двух других одно любое значение меньше середины и больше середины, а затем классифицируем остальные значения в пределах шага.

С уважением, SysUnit.
 
Ответить
СообщениеПопытался максимально формализовать алгоритм, но, вообще говоря, подойдёт любой алгоритм классификации, главное, чтобы очереди не пустовали.
Классификация работает так: считаем сумму для каждого значения:
Общий отдел 30
Отдел кадров 24
....
Глав. Бух. 12

Находим максимум (30), минимум (12), середину (21) и шаг (Макс - Мин / 4 = 4.5)
Записываем в каждую группу по одному значению (для максимума и минимума они есть автоматически, а для двух других одно любое значение меньше середины и больше середины, а затем классифицируем остальные значения в пределах шага.

С уважением, SysUnit.

Автор - SysUnit
Дата добавления - 16.04.2014 в 15:40
igrtsk Дата: Среда, 16.04.2014, 15:40 | Сообщение № 6
Группа: Проверенные
Ранг: Обитатель
Сообщений: 314
Репутация: 50 ±
Замечаний: 0% ±

Excel 2016
Есть список что, кому и сколько нужно (экспорт из другой программы)

Экспорт из другой программы производится именно в формат excel? Или в текстовый/иной формат, а вы потом уже сами вставляете данные в excel?


Инструктор по применению лосей в кавалерийских частях РККА
 
Ответить
Сообщение
Есть список что, кому и сколько нужно (экспорт из другой программы)

Экспорт из другой программы производится именно в формат excel? Или в текстовый/иной формат, а вы потом уже сами вставляете данные в excel?

Автор - igrtsk
Дата добавления - 16.04.2014 в 15:40
SysUnit Дата: Среда, 16.04.2014, 15:44 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
igrtsk, спасибо за ответ!
Экспорт (как он есть) в прикреплённых файлах (изменений никаких не вносил).

С уважением.
 
Ответить
Сообщениеigrtsk, спасибо за ответ!
Экспорт (как он есть) в прикреплённых файлах (изменений никаких не вносил).

С уважением.

Автор - SysUnit
Дата добавления - 16.04.2014 в 15:44
igrtsk Дата: Среда, 16.04.2014, 16:12 | Сообщение № 8
Группа: Проверенные
Ранг: Обитатель
Сообщений: 314
Репутация: 50 ±
Замечаний: 0% ±

Excel 2016
М-да, я не большой специалист, но мне кажется, что что-то очень громоздкое получится при имеющемся у вас экспорте.
Ибо, чтобы макрос мог отделить мух от котлет, придется создавать отдельную библиотеку всех ваших отделов (прошу прощения за тафталогию), так как макрос обязан "понимать", что Глав.бух. - это отдел, а не канцелярская принадлежность :) И возможно вам придется обращаться в раздел фриланс, чтобы кто-то взялся городить этого монстра.
А вот если бы в процесс формирования результатов экспорта внести незначительны изменения (в название отделов, представив их, скажем, в виде Отдел_Общий или Отдел_Бухгалтерия. Чтобы везде в названии присутствовало слово Отдел или иной одинаковый атрибут ), то задачка решилась бы гораздо проще.


Инструктор по применению лосей в кавалерийских частях РККА

Сообщение отредактировал igrtsk - Среда, 16.04.2014, 16:36
 
Ответить
СообщениеМ-да, я не большой специалист, но мне кажется, что что-то очень громоздкое получится при имеющемся у вас экспорте.
Ибо, чтобы макрос мог отделить мух от котлет, придется создавать отдельную библиотеку всех ваших отделов (прошу прощения за тафталогию), так как макрос обязан "понимать", что Глав.бух. - это отдел, а не канцелярская принадлежность :) И возможно вам придется обращаться в раздел фриланс, чтобы кто-то взялся городить этого монстра.
А вот если бы в процесс формирования результатов экспорта внести незначительны изменения (в название отделов, представив их, скажем, в виде Отдел_Общий или Отдел_Бухгалтерия. Чтобы везде в названии присутствовало слово Отдел или иной одинаковый атрибут ), то задачка решилась бы гораздо проще.

Автор - igrtsk
Дата добавления - 16.04.2014 в 16:12
SysUnit Дата: Среда, 16.04.2014, 16:36 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
igrtsk, названия отделов можно легко исправить.
Кроме того отделом можно считать всё, где нет цифр :)

С уважением, SysUnit.
 
Ответить
Сообщениеigrtsk, названия отделов можно легко исправить.
Кроме того отделом можно считать всё, где нет цифр :)

С уважением, SysUnit.

Автор - SysUnit
Дата добавления - 16.04.2014 в 16:36
SysUnit Дата: Среда, 16.04.2014, 16:39 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
Исправленная версия
К сообщению приложен файл: 9072217.xls (29.0 Kb) · 1889097.xlsx (10.4 Kb)
 
Ответить
СообщениеИсправленная версия

Автор - SysUnit
Дата добавления - 16.04.2014 в 16:39
igrtsk Дата: Среда, 16.04.2014, 16:41 | Сообщение № 11
Группа: Проверенные
Ранг: Обитатель
Сообщений: 314
Репутация: 50 ±
Замечаний: 0% ±

Excel 2016
Ну, что же, можно подискутировать на эту тему :)
Замените в названии отделов пробел, скажем, на точку или подчеркивание. затем используйте встроенную функцию excel: текст по столбцам. Благо, что цифры у вас отделены пробелами. Получите традиционную таблицу: 1-й столбец - название, 2-й столбец - количество А дальше откроется огромное поле для творчества, начиная с условного форматирования и т.п.
Вполне возможно обойдетесь и без макроса.


Инструктор по применению лосей в кавалерийских частях РККА

Сообщение отредактировал igrtsk - Среда, 16.04.2014, 16:43
 
Ответить
СообщениеНу, что же, можно подискутировать на эту тему :)
Замените в названии отделов пробел, скажем, на точку или подчеркивание. затем используйте встроенную функцию excel: текст по столбцам. Благо, что цифры у вас отделены пробелами. Получите традиционную таблицу: 1-й столбец - название, 2-й столбец - количество А дальше откроется огромное поле для творчества, начиная с условного форматирования и т.п.
Вполне возможно обойдетесь и без макроса.

Автор - igrtsk
Дата добавления - 16.04.2014 в 16:41
SysUnit Дата: Среда, 16.04.2014, 16:43 | Сообщение № 12
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
igrtsk,
А дальше откроется огромное поле для творчества начиная с условного форматирования и т.п. Вполне возможно обойдетесь и без макроса.

Как? Алгоритм действий вообще не понятен, к сожалению. Можете привести пример?
 
Ответить
Сообщениеigrtsk,
А дальше откроется огромное поле для творчества начиная с условного форматирования и т.п. Вполне возможно обойдетесь и без макроса.

Как? Алгоритм действий вообще не понятен, к сожалению. Можете привести пример?

Автор - SysUnit
Дата добавления - 16.04.2014 в 16:43
nilem Дата: Среда, 16.04.2014, 18:51 | Сообщение № 13
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
можно вот так попробовать:
[vba]
Код
Sub ertert()
Dim x, i&, sm&: Application.ScreenUpdating = False
With Range("A1").CurrentRegion.Resize(, 2)
     x = .Value
     For i = UBound(x) To 1 Step -1
         If x(i, 1) Like "*[0-9]" Then
             sm = sm + Val(Mid(x(i, 1), InStrRev(x(i, 1), " ")))
             x(i, 2) = "=R[-1]C"
         Else
             x(i, 2) = sm: sm = 0
         End If
     Next
     .Value = x
     .Sort Key1:=.Cells(1, 2), Order1:=xlDescending
     .Columns(2).ClearContents
End With: Application.ScreenUpdating = True
End Sub
[/vba]
в файле нажимайте зеленую кнопку.
ПС SysUnit, как называется цветовая схема в вашем Excel?
К сообщению приложен файл: 1889097.xlsm (17.2 Kb)


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеможно вот так попробовать:
[vba]
Код
Sub ertert()
Dim x, i&, sm&: Application.ScreenUpdating = False
With Range("A1").CurrentRegion.Resize(, 2)
     x = .Value
     For i = UBound(x) To 1 Step -1
         If x(i, 1) Like "*[0-9]" Then
             sm = sm + Val(Mid(x(i, 1), InStrRev(x(i, 1), " ")))
             x(i, 2) = "=R[-1]C"
         Else
             x(i, 2) = sm: sm = 0
         End If
     Next
     .Value = x
     .Sort Key1:=.Cells(1, 2), Order1:=xlDescending
     .Columns(2).ClearContents
End With: Application.ScreenUpdating = True
End Sub
[/vba]
в файле нажимайте зеленую кнопку.
ПС SysUnit, как называется цветовая схема в вашем Excel?

Автор - nilem
Дата добавления - 16.04.2014 в 18:51
igrtsk Дата: Четверг, 17.04.2014, 09:24 | Сообщение № 14
Группа: Проверенные
Ранг: Обитатель
Сообщений: 314
Репутация: 50 ±
Замечаний: 0% ±

Excel 2016
Как? Алгоритм действий вообще не понятен, к сожалению. Можете привести пример?

Еще один вопрос для понимания ситуации: номенклатура канцелярских принадлежностей в программе, которая формирует итоговые данные кому и сколько надо, - фиксированная или меняется от случая к случаю?


Инструктор по применению лосей в кавалерийских частях РККА
 
Ответить
Сообщение
Как? Алгоритм действий вообще не понятен, к сожалению. Можете привести пример?

Еще один вопрос для понимания ситуации: номенклатура канцелярских принадлежностей в программе, которая формирует итоговые данные кому и сколько надо, - фиксированная или меняется от случая к случаю?

Автор - igrtsk
Дата добавления - 17.04.2014 в 09:24
igrtsk Дата: Четверг, 17.04.2014, 10:25 | Сообщение № 15
Группа: Проверенные
Ранг: Обитатель
Сообщений: 314
Репутация: 50 ±
Замечаний: 0% ±

Excel 2016
Насколько я понял, страничка результатов вам нужна для визуальной оценки потребности отделов и принятия решения кого обеспечить в первую очередь, а не для дальнейшей машинной обработки. По этой причине я взял на себя смелость видоизменить отображение конечных результатов со следующими критериями:
если отделу необходимо получить более 25 и более предметов - это в первую очередь и ячейка подсвечивается красным
если отделу необходимо получить от 15 до 25 предметов - это вторая очередь и ячейка подсвечивается оранжевым
если отделу необходимо получить менее 15 ипредметов - это третья очередь и ячейка подсвечивается зеленым
К сообщению приложен файл: 9072217-1-.xls (44.0 Kb)


Инструктор по применению лосей в кавалерийских частях РККА
 
Ответить
СообщениеНасколько я понял, страничка результатов вам нужна для визуальной оценки потребности отделов и принятия решения кого обеспечить в первую очередь, а не для дальнейшей машинной обработки. По этой причине я взял на себя смелость видоизменить отображение конечных результатов со следующими критериями:
если отделу необходимо получить более 25 и более предметов - это в первую очередь и ячейка подсвечивается красным
если отделу необходимо получить от 15 до 25 предметов - это вторая очередь и ячейка подсвечивается оранжевым
если отделу необходимо получить менее 15 ипредметов - это третья очередь и ячейка подсвечивается зеленым

Автор - igrtsk
Дата добавления - 17.04.2014 в 10:25
SysUnit Дата: Воскресенье, 20.04.2014, 14:13 | Сообщение № 16
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
igrtsk, спасибо огромное! Всё отлично работает, только при небольшом изменении структуры столбца - в графе Пять (изменил название для удобства ссылок) учитывается итог из Шесть :(

С уважением.
 
Ответить
Сообщениеigrtsk, спасибо огромное! Всё отлично работает, только при небольшом изменении структуры столбца - в графе Пять (изменил название для удобства ссылок) учитывается итог из Шесть :(

С уважением.

Автор - SysUnit
Дата добавления - 20.04.2014 в 14:13
SysUnit Дата: Воскресенье, 20.04.2014, 23:03 | Сообщение № 17
Группа: Пользователи
Ранг: Новичок
Сообщений: 10
Репутация: 0 ±
Замечаний: 0% ±

Excel 2013
nilem, спасибо за ответ!
А можно ещё сумму для каждого отдела посчитать? respect respect respect
 
Ответить
Сообщениеnilem, спасибо за ответ!
А можно ещё сумму для каждого отдела посчитать? respect respect respect

Автор - SysUnit
Дата добавления - 20.04.2014 в 23:03
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Умная сортировка (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!