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

Вход

Регистрация

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

 

= Мир MS Excel/Двухэтапная сортировка - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Двухэтапная сортировка
aeeezap Дата: Вторник, 29.08.2023, 02:04 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

16.0.12527.20278
Здравствуйте, подскажите пожалуйста, хочу сделать сортировку по количеству (сначала убрать товары с количеством 0 вниз), а после этого остатки (товары которые имеют кол-во больше 0) отсортировать по цене, как это можно сделать? И возможно ли в самой таблице сделать что-то вроде кнопки сортировки?

Ссылка на таблицу - https://docs.google.com/spreads....sharing
Создал лист схема работы, там более подробное объяснение


Сообщение отредактировал aeeezap - Вторник, 29.08.2023, 02:11
 
Ответить
СообщениеЗдравствуйте, подскажите пожалуйста, хочу сделать сортировку по количеству (сначала убрать товары с количеством 0 вниз), а после этого остатки (товары которые имеют кол-во больше 0) отсортировать по цене, как это можно сделать? И возможно ли в самой таблице сделать что-то вроде кнопки сортировки?

Ссылка на таблицу - https://docs.google.com/spreads....sharing
Создал лист схема работы, там более подробное объяснение

Автор - aeeezap
Дата добавления - 29.08.2023 в 02:04
Gustav Дата: Вторник, 29.08.2023, 12:12 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
А не хотите просто рядом с основной таблицей (колонки A:C) держать её динамически отсортированную копию (колонки E:G)? Т.е. буквально как у Вас в примере - и саму таблицу, и её вид "как должно быть". Это можно организовать одной единственной формулой в ячейке E3:
[vba]
Код
={ SORT(FILTER(A3:C;A3:A<>"";B3:B>0);3;FALSE); FILTER(A3:C;A3:A<>"";B3:B=0) }
[/vba]
И тогда не надо никаких сортирующих кнопок, и в правой таблице всё будет всегда актуально. Только не забудьте перед размещением формулы очистить диапазон E3:G11, чтобы формула смогла нормально "развернуться" (без ошибки типа #REF!).


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеА не хотите просто рядом с основной таблицей (колонки A:C) держать её динамически отсортированную копию (колонки E:G)? Т.е. буквально как у Вас в примере - и саму таблицу, и её вид "как должно быть". Это можно организовать одной единственной формулой в ячейке E3:
[vba]
Код
={ SORT(FILTER(A3:C;A3:A<>"";B3:B>0);3;FALSE); FILTER(A3:C;A3:A<>"";B3:B=0) }
[/vba]
И тогда не надо никаких сортирующих кнопок, и в правой таблице всё будет всегда актуально. Только не забудьте перед размещением формулы очистить диапазон E3:G11, чтобы формула смогла нормально "развернуться" (без ошибки типа #REF!).

Автор - Gustav
Дата добавления - 29.08.2023 в 12:12
aeeezap Дата: Вторник, 29.08.2023, 12:17 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

16.0.12527.20278
={ SORT(FILTER(A3:C;A3:A<>"";B3:B>0);3;FALSE); FILTER(A3:C;A3:A<>"";B3:B=0) }


Это таблица слишком мелкая копия, в основной таблице намного больше столбов и там не особо влезет дубль отсортированный)

Плюс нужно иногда таблицу держать без сортировки


Сообщение отредактировал aeeezap - Вторник, 29.08.2023, 12:19
 
Ответить
Сообщение
={ SORT(FILTER(A3:C;A3:A<>"";B3:B>0);3;FALSE); FILTER(A3:C;A3:A<>"";B3:B=0) }


Это таблица слишком мелкая копия, в основной таблице намного больше столбов и там не особо влезет дубль отсортированный)

Плюс нужно иногда таблицу держать без сортировки

Автор - aeeezap
Дата добавления - 29.08.2023 в 12:17
Gustav Дата: Вторник, 29.08.2023, 13:42 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2808
Репутация: 1184 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Ну, тогда такой скрипт для кнопки сортировки:
[vba]
Код
function mySort() {
    var ss = SpreadsheetApp.getActive();
    var range = ss.getRange('A3:C');
    range.sort({column: 2, ascending: false});

    var filter = range.offset(-1,0,range.getNumRows()+1,range.getNumColumns()).createFilter(); // создаем фильтр от заголовка
    var criteria = SpreadsheetApp.newFilterCriteria().whenNumberGreaterThan(0).build();

    filter.setColumnFilterCriteria(2, criteria);
    filter.sort(3, false);
    filter.remove();
}
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеНу, тогда такой скрипт для кнопки сортировки:
[vba]
Код
function mySort() {
    var ss = SpreadsheetApp.getActive();
    var range = ss.getRange('A3:C');
    range.sort({column: 2, ascending: false});

    var filter = range.offset(-1,0,range.getNumRows()+1,range.getNumColumns()).createFilter(); // создаем фильтр от заголовка
    var criteria = SpreadsheetApp.newFilterCriteria().whenNumberGreaterThan(0).build();

    filter.setColumnFilterCriteria(2, criteria);
    filter.sort(3, false);
    filter.remove();
}
[/vba]

Автор - Gustav
Дата добавления - 29.08.2023 в 13:42
aeeezap Дата: Среда, 30.08.2023, 22:53 | Сообщение № 5
Группа: Пользователи
Ранг: Прохожий
Сообщений: 4
Репутация: 0 ±
Замечаний: 0% ±

16.0.12527.20278
Спасибо большое, отблагодарил на тип бокс)
 
Ответить
СообщениеСпасибо большое, отблагодарил на тип бокс)

Автор - aeeezap
Дата добавления - 30.08.2023 в 22:53
  • Страница 1 из 1
  • 1
Поиск:

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