Страницы: 1
RSS
Сортировка выделенных ячеек столбца "умной таблицы"
 
Помогите пожалуйста отсортировать данные в "умной таблице" со множеством столбцов. В столбце содержаться значения, которые заканчиваются или на "17" или на "18". Значение вот в таком формате: 01-35-8985-1-17 и  100-35-8985-1-18.

Хочу выделить сначала значения, которые заканчиваются на "17" и отсортировать их по возрастанию по первому числу в номере. А потом хочу выделить значения, которые заканчиваются на "18" и отсортировать их по возрастанию по первому числу в номере.

Пытаюсь сделать эту сортировку, выделяю с столбце значения, которые заканчиваются или на "17", жму "Сортировка от А до Я", но к отсортированным ячейкам, значения, которые заканчиваются на "17", подтягиваются и ячейки, содержащие значения, заканчиваются на "18" (хотя их не выделяла для сортировки).  

Подскажите пожалуйста как сделать, чтобы по возрастанию сортировались только значения в выделенных ячейках столбца.
 
Olga H., покажите файл-пример.
Если в мире всё бессмысленно, — сказала Алиса, — что мешает выдумать какой-нибудь смысл? ©Льюис Кэрролл
 
Bema,
для того, чтобы сортировать ячейки Столбца 72 (значения которых заканчиваются на "17") по возрастанию, выделяю диапазон D2:D5, жму на Сортировка от А до Я, но в сортированный диапазон влезают ячейки со значениями, оканчивающимися на "18" (из диапазона D6:D8).
 
Цитата
Olga H. написал:
Подскажите пожалуйста как сделать
Преобразовать таблицу в диапазон.
Когда вы сортируете в диапазоне, Excel спрашивает, нужно-ли расширить диапазон, а когда вы используете "таблицу", он ничего не спрашивает, просто расширяет.
И у вас 2 выхода, на выбор - отказаться от "таблицы", или отказаться от сортировки.
 
Добрый день!
можно через допстолбец с формулой =ЗНАЧЕН(ЛЕВСИМВ(A2;ПОИСК("-";A2)-1)&ПРАВСИМВ(A2;2)), и уже по этому столбцу ведете сотрировку
 
Привет!

Во вложении.
Сортирует выделенные ячейки по возрастанию.

Для себя бы сделал, чтобы макрос сам бы искал нужные участки и сам бы сортировал
по нужным правилам.
Изменено: Inexsu - 15.12.2018 11:59:06
Сравнение прайсов, таблиц - без настроек
 
Anton555, Inexsu,

Если слева и справа от сортируемого столбца имеются ещё ячейки с значениями, будут ли они автоматически подтягиваться к сортируемому диапазону? Чтобы соседние  с сортируемым диапазоном ячейки подстраивались под изменения расположения ячеек при сортировке.
Изменено: Olga H. - 15.12.2018 16:05:27
 
Olga H., да, почему нет-то? вы сами попробовали это сделать?
при сортировке excel спросит - что сортируем - всю таблицу или только этот столбец не трогая другие.
 
Цитата
Olga H. написал:
автоматически подтягиваться к сортируемому диапазону?
В моём варианте НЕТ, ибо я прочитал:
Цитата
Olga H. написал:
выделить сначала значения, которые заканчиваются на "17" и отсортировать их
Сравнение прайсов, таблиц - без настроек
 
Anton555,
Извините, что неполно сформулировала вопрос: думала, что можно обойтись простой сортировкой. Вопрос усложняется тем, что справа и слева от столбца, в котором находятся подлежащие сортировке ячейки со значениями, находятся другие заполненные столбцы. И дополнительный столбец с вашей формулой в эту умную таблицу проблематично вставить, так как эта таблица имеет связанные ячейки, вся структура порушится.
Изменено: Olga H. - 15.12.2018 15:49:27
 
Inexsu,
Извините, что вопрос сформулировала неполно. У меня, просьба, отредактируйте пожалуйста макрос так, чтобы ячейки с значениями автоматически подтягиваться к сортируемому диапазону и чтобы ячейки, оканчивающиеся на 17 и 18, сортировались по возрастанию.
Вы добавили макрос в модуль книги и потом жали на Run, чтобы получить результат на листе 3(2)?
 
Во вложении велосипед из костылей.
Изменено: Inexsu - 15.12.2018 22:16:45
Сравнение прайсов, таблиц - без настроек
 
Inexsu,
Подскажите пожалуйста, как запускается ваш макрос в вашем примере?:

1)выделяем сортируемый диапазон (заполненные ячейки Столбца 72)
2)Жмём на модель листа InExSu
3)Жмём Run-Run Macro
4)Жмём Пуск
 
Сортируем сначала по последним цЫфирькам нужного столбца, затем по полному содержимому.
Код
Sub мяу()
    Const colSortName = "Столбец74"
    Dim colSort&, colSort1&
    Dim tblName$
    Dim tblRange As Range, tblRange1 As Range
    With ActiveSheet
        Application.EnableEvents = False
        Application.ScreenUpdating = False
        Set tblRange = .ListObjects(1).Range
        tblName = .ListObjects(1).Name
        colSort = .ListObjects(1).ListColumns(colSortName).Range.Column
        colSort1 = .ListObjects(1).Range.Column + .ListObjects(1).Range.Columns.Count
        .ListObjects(1).ListColumns(colSortName).DataBodyRange.Copy .ListObjects(1).ListColumns(colSortName).DataBodyRange.Offset(, colSort1 - colSort)
        Set tblRange1 = .ListObjects(1).Range
        .ListObjects(1).Unlist
       .Columns(colSort1).Replace What:="*-", Replacement:="", LookAt:=xlPart
        With .Sort
            .SortFields.Clear
            .SortFields.Add Key:=Cells(1, colSort1), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SortFields.Add Key:=Cells(1, colSort), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            .SetRange tblRange1
            .Header = xlYes
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply
        End With
        .Columns(colSort1).Delete
        .ListObjects.Add(xlSrcRange, tblRange, , xlYes).Name = tblName
        Application.EnableEvents = True
        Application.ScreenUpdating = True
        Set tblRange = Nothing: Set tblRange1 = Nothing
    End With
End Sub
 
Привет!
Цитата
Olga H. написал:
как запускается ваш макрос
Выделите нужные ячейки в любом столбце, где нужна сортировка строками, например  "Столбец74".
Alt+F8.
Выберите макрос, в нашем случае: Пуск.
Выполнить.

И нужно выяснить, что происходит с формулами.
Есть предположение, что придётся их перед сортировкой превращать в абсолютные, а потом обратно в относительные.
Так что вся надежда на Вас :-)
Сравнение прайсов, таблиц - без настроек
 
Inexsu,
1)выделяю в приложенном примере диапазон D2:D7, который хочу отсортировать
2)Жму на Аlt+F8
3)Выбираю макрос Пуск, потом Выполнить
4)Но сортировка не происходит

Подскажите пожалуйста, почему не происходит сортировка? Формул в ячейках умной таблицы нет.
 
Привет!

По обычным понятиям Excel выделенные Вами ячейки уже отсортированы.
я НЕ учёл
Цитата
Olga H. написала:
по возрастанию по первому числу в номере.
Решаемо. Одна модель сформировалась вот прям очень хорошая.
Сравнение прайсов, таблиц - без настроек
 
RAN,
"Сортируем сначала по последним цЫфирькам нужного столбца, затем по полному содержимому"- напишите пожалуйста поразвёрнутее что вы имели ввиду: это два разных действия? Макрос надо запускать дважды?  
 
Olga H., просто интересно, чем вам не подошел вариант изложенный в #5 ? вы вообще пробовали его применить?
 
Anton555,
у меня просьба, покажите пожалуйста куда и как вставить вашу формулу в пример, который в сообщении 10. У меня в доп. столбце вылезает #ЗНАЧ!
при применении формулы.
 
Olga H., сортируйте по столбцу "G" хоть по возрастанию, хоть по убыванию
 
Anton555,
а как у вас в столбце G появились значения?
 
Olga H., вы разве не видите, что там формула =ЗНАЧЕН(ЛЕВСИМВ(E2;ПОИСК("-";E2)-1)&ПРАВСИМВ(E2;2))? удивительно...
 
Anton555,
спасибо, ваша формула сработала и отсортировала по возрастанию ячейки столбца умной таблицы с автоматическим подтягиванием данных из связанных ячеек.

1)Скопировала вашу формулу (эта формула универсальная, только надо менять в формуле координаты первой ячейки сортируемого столбца).
2)Вставила в любой пустой столбец умной таблицы вашу формулу.
3)Enter
4)Полученный заполненный значениями столбец выделила.
5)Жму правую кнопку мыши
6)Выбираю Сортировка по возрастанию
7)И столбец с подлежащими сортировке ячейками со значениями автоматически сортируется.
 
Цитата
написал:
Когда вы сортируете в диапазоне, Excel спрашивает, нужно-ли расширить диапазон, а когда вы используете "таблицу", он ничего не спрашивает, просто расширяет.И у вас 2 выхода, на выбор - отказаться от "таблицы", или отказаться от сортировки.
2ALL: я правильно понимаю, что в 2023г проблема до сих пор не решена?
Т.е. если у нас диапазон или "умная таблица", то выполнить сортировку выделения, т.е. лишь только части "умной таблицы" (диапазона) в принципе невозможно?
 
Цитата
zamboga написал:
проблема до сих пор не решена?
Какая проблема? которую вы себе создаете?
Цитата
zamboga написал:
если у нас диапазон
Цитата
zamboga написал:
то выполнить сортировку выделения
это запросто
Цитата
zamboga написал:
т.е. лишь только части "умной таблицы" (диапазона) в принципе невозможно?
Сей инструмент был специально создан, чтобы не допускать подобное.
Для вас невозможность тормозить "юзом" при включенной АБС тоже проблема, которая до сих пор не решена?
Изменено: RAN - 16.06.2023 14:54:56
 
Цитата
zamboga: Т.е. если у нас диапазон или "умная таблица", то выполнить сортировку выделения, т.е. лишь только части "умной таблицы" (диапазона) в принципе невозможно?
элементарно. Диапазон в массив, сортируем массив, выгружаем обратно отсортированный массив.
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Цитата
написал:
Диапазон в массив, сортируем массив, выгружаем обратно отсортированный массив.
Можно чуть подробнее? Вы имеете в виду преобразовать "умную" в "обычную"? Массив же это формулы со {}, чёт не могу сообразить, как их здесь использовать.
Страницы: 1
Наверх