Страницы: 1
RSS
Ранжирование списка значений с перемещением значения 0 в конец ранга
 
Добрый день!

Помогите, пожалуйста, с решением такой проблемы. Есть двухмерный массив с перечнем текстовых элементов (колонка 1) и соответствующим каждому элементу цифровым значением (колонка 2). Необходимо отсортировать массив по убыванию значений в колонке 2, но с условием: сначала сортируются все элементы с ненулевым значением в колонке 2, далее нулевые в произвольном порядке. Максимум, что смог придумать я - отсортировать все ненулевые значения из колонки 2 при помощи функции AGGREGATE. На этом я застрял :)

Решение макросом не подходит. Файл очень огромный и будет в конце сохранен в формате .xlsb для уменьшения "веса".
 
можно заменить 0 (ячейка целиком) на пустое значение и потом отсортировать стандартно сначала по B, потом по А. и если нужно - потом вернуть 0 на место пустых.
 
Это не статический список, а динамический (там, где он используется). Не проблема сделать дополнительный столбик и формулой все нули в нем заменить на NULL. Но как дальше формулой отсортировать?
 
Цитата
colonel написал:
Но как дальше формулой отсортировать?
Сортировка- изменения порядка отображения строк\ячеек на том же месте, формулами это не решается, а вот вывести этот список в нужном порядке в нужное место это другой вопрос- вам что нужно-то?
 
Цитата
colonel написал:
далее нулевые в произвольном порядке
а это как?
Цитата
colonel написал:
Решение макросом не подходит. Файл очень огромный и будет в конце сохранен в формате .xlsb для уменьшения "веса".
и в чем проблема? xlsb прекрасно хранит макросы
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
Дмитрий(The_Prist) Щербаков написал: xlsb прекрасно хранит макросы
Это еще и условие, которое мне поставили. Без макросов, потому что пользователи часто пугаются, увидев "Enable content". Я понимаю, что звучит тупо, но условие именно такое.

Цитата
Сортировка- изменения порядка отображения строк\ячеек на том же месте, формулами это не решается, а вот вывести этот список в нужном порядке в нужное место это другой вопрос- вам что нужно-то?
Нужно вывести в отдельном месте. Конечно, я не настолько ламер в Excel, чтобы думать будто можно сделать все формулами в одном месте :)
Изменено: colonel - 16.02.2020 14:55:17
 
С допстолбцом можно и на месте отсортировать
 
Простите. Я все равно не понимаю КАК это работает. Можно ли сделать Пример, где колонки E:E и F:F будут заполнены формулами и опираться на колонки A:A, B:B и любые вспомогательные колонки (если это необходимо)?
 
Присваивается числу ранг. Но если значение 0. то вместо ранга подставляется большое число.
Включить этот столбец в автофильтр и сортировать по нему
 
вывод списка в другом месте не есть сортировка- а у вас тема "Сортировка..."
ну сделали допстолбец, отсортировали по нему, скопировали \ вставили в нужное место
 
Я Вам очень благодарен за помощь. Может, я неправильно сформулировал тему (но в файле я тоже спецом оставил комментарий, что нужно вывести отсортированный массив). Давайте попробую переформулировать.

Есть массив данных A:B. Он не статический, а динамический, результаты в него записываются из других листов. Нужно при помощи формул упорядочить его и вывести в массив E:F так, чтобы он выглядел как отсортированный по описанным критериям: сначала ненулевые по убыванию, потом нулевые в любом порядке. Можно ли что-то придумать?

Уже я вижу, выше есть предложения с формулой RANK. В принципе, практически решение: можно дальше через VLOOKUP по номеру ранга подтягивать город. Но из-за того что у всех нулевых городов ранг одинаковый, VLOOKUP не сработает.
Изменено: colonel - 16.02.2020 15:43:00
 
colonel, тема о сортировке. Другие вопросы - другие темы.
Или предложите название, отвечающее задаче. Модераторы заменят
 
ВОТ
 
Цитата
Vik_tor написал:
ВОТ
Спасибо! Это оно
 
Цитата
vikttur написал: предложите название, отвечающее задаче. Модераторы заменят
А это не оно? Теперь Vik_tor,  вместо Вас придумает название темы.
 
Цитата
Vik_tor написал:
Сортировка- изменения порядка отображения строк\ячеек на том же месте, формулами это не решается
Очень даже и решается с помощью UDF.
 
"Ранжирование списка значений с разными знаками без пропусков с перемещением значения 0 в конец ранга"
Страницы: 1
Наверх