Страницы: 1
RSS
Автоматическая сортировка списка
 
Всем здравствуйте.  
 
Описание:  
Есть таблица в которой могут появляться и исчезать данные (прям волшебная какая-то таблица :)).    
 
Задача:  
Так вот необходимо настроить автоматическую сортировку по тексту а после по значению. С настройкой отдельно по значению проблем нет - использую функцию "наибольший" а вот с текстом.....  
 
Т.е. при обновлении данных, в итоговой таблице данные должны выстроиться в алфавитном порядке с дополнительной сортировкой (в случае появления одинаковых названий) по данным в таблице.  
 
Буду благодарен за помощь.  
 
На всякий случай опишу механику фильтрации по значению, может кто сделает проще.  
1)В таблицу с данными добавил столбец с нумерацией строк (хотя можно было и через "строку" пойти).  
2)Данные из столбца с нумерацией привязал к функции "наибольшее"  
3)К данным находящимся в столбце по которому необходима фильтрация прибавил данные из столбца нумерации деленные на 1 000 000 000 :) таким образом в случае появлении в таблице одинаковых значений (а у меня они целые) формула все равно получало сове наибольшее с небольшой погрешностью которая потом округлялась и как следствие исчезала.  
4)Ну а дальше комбинацией Индекс(Поискпоз вытаскивал в новую таблицу необходимые мне данные
 
Добавил Вам автосортировку изменитн любое значение в 1 или 2 столбце, хотя имена лучше динамические но писать лень
 
Спасибо за макрос, но я его не смог адаптировать к своему файлу :(  
Возможно это както формулами сделать?
 
Сортировка по тексту - по алфавиту или есть числовые "вкрапления", как в примере?
 
Спасибо за участие :)  
 
В моем случае будут числовые вкропления, при этом колличество буквенных и числовых знаков может различаться.  
Например  
МО1  
МГБ12    
и т.д.
 
{quote}{login=Гигорий}{date=01.09.2009 06:29}{thema=}{post}Спасибо за макрос, но я его не смог адаптировать к своему файлу :(  
Возможно это както формулами сделать?{/post}{/quote}  
Интересно почему не смогли ? Что Вам так сильно мешает?
 
Вопрос был в следующем - как сортировать?  
По алфавиту можно, но формулами по первым одной-двум буквам, далее усложнение. А если имеется текст с тремя-пятью одинаковыми?  
По числам (цифрам) тоже можно, но нужно знать некоторые подробности - размещение, наличие цифровых знаков между буквами и проч.
 
{quote}{login=Григорий}{date=01.09.2009 02:32}{thema=Автоматическая сортировка списка}{post}Всем здравствуйте.  
 
Описание:  
Есть таблица в которой могут появляться и исчезать данные (прям волшебная какая-то таблица :)).    
 
Задача:  
Так вот необходимо настроить автоматическую сортировку по тексту а после по значению. С настройкой отдельно по значению проблем нет - использую функцию "наибольший" а вот с текстом.....  
 
Т.е. при обновлении данных, в итоговой таблице данные должны выстроиться в алфавитном порядке с дополнительной сортировкой (в случае появления одинаковых названий) по данным в таблице.  
 
Буду благодарен за помощь.  
 
На всякий случай опишу механику фильтрации по значению, может кто сделает проще.  
1)В таблицу с данными добавил столбец с нумерацией строк (хотя можно было и через "строку" пойти).  
2)Данные из столбца с нумерацией привязал к функции "наибольшее"  
3)К данным находящимся в столбце по которому необходима фильтрация прибавил данные из столбца нумерации деленные на 1 000 000 000 :) таким образом в случае появлении в таблице одинаковых значений (а у меня они целые) формула все равно получало сове наибольшее с небольшой погрешностью которая потом округлялась и как следствие исчезала.  
4)Ну а дальше комбинацией Индекс(Поискпоз вытаскивал в новую таблицу необходимые мне данные{/post}{/quote}  
 
А почему не использовать сводную?
 
Serge Для сводной данные неудобные.  
 
Микки В макросе выдает ошибку на Range("Что").Select . Можно для особо непонятливых (для меня :) ) по пунктам что там манять при переносе надо (Кроме названия листов и диапазонов). Меняю и в самом листе и в модуле.  
 
vikttur Можешь показать как по первым 3м буквам? Я д
 
{quote}{login=Григорий}{date=03.09.2009 03:13}{thema=}{post}Serge Для сводной данные неудобные.  
 
Прикольно, я ещё не встречал неудобных данных ;)
 
А почему именно автоматическая? А нажатием кнопки сложно?
 
{quote}{login=Григорий}{date=03.09.2009 03:13}{thema=}{post}Serge Для сводной данные неудобные.  
 
Микки В макросе выдает ошибку на Range("Что").Select . Можно для особо непонятливых (для меня :) ) по пунктам что там манять при переносе надо (Кроме названия листов и диапазонов). Меняю и в самом листе и в модуле.  
 
vikttur Можешь показать как по первым 3м буквам? Я д{/post}{/quote}  
Объясняю    
Используются 3 именованных диапазона на Листе 1 (строго)  
Если изменилось что либо в диапазоне A3:C11  
то выделяем диапазон ЧТО (A3:C11)  
и сортируем сначала по Диапазону Название (А3:А11)  
потом по Диапазону Столбец1 (В3:В11)  
Проверьте имена диапазонов что были присвоены и все должно работать    
 
Private Sub Worksheet_Change(ByVal Target As Range)  
'если изменения в диапазоне A3:C11  
If Not Intersect(Target, Range("A3:C11")) Is Nothing Then  
'если выделили больше одной ячейке, то выход  
If Selection.Cells.Count > 1 Then Exit Sub  
Range("Что").Select  
   'ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Clear  
   ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("Название"), _  
       SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal  
   ActiveWorkbook.Worksheets("Лист1").Sort.SortFields.Add Key:=Range("Столбец1"), _  
       SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal  
     
   With ActiveWorkbook.Worksheets("Лист1").Sort  
       .SetRange Range("Что")  
       .Header = xlYes  
       .MatchCase = False  
       .Orientation = xlTopToBottom  
       .SortMethod = xlPinYin  
       .Apply  
   End With  
   
End If  
End Sub
 
Если решение этой задачи с помощью формул. Его KL приводил как-то на одном из форумов, если найду, выложу, но формулы там гигантские скажу сразу! )
 
{quote}{login=Excel-ok}{date=03.09.2009 04:32}{thema=}{post}Если решение этой задачи с помощью формул. Его KL приводил как-то на одном из форумов, если найду, выложу, но формулы там гигантские скажу сразу! ){/post}{/quote}  
 
Читать так:  
 
ЕСТЬ решение этой задачи и с помощью формул. Его KL приводил как-то на одном из форумов, если найду, выложу, но формулы там гигантские скажу сразу!  
 
)))
 
http://www.planetaexcel.ru/forum.php?thread_id=7394
 
Я таки не понимаю , чем мой вариант плох? Прекрасно работает сделайте динамические диапазоны и не парьтесь или засадите макрос на кнопочку
Страницы: 1
Читают тему
Наверх