Страницы: 1
RSS
Сортировка значений по возрастанию полученного массива.
 
Добрый день.
Подскажите пожалуйста, уже всю голову сломал.
Есть реестр договоров, у не есть сроки. На новом листе с помощью формулы массива =ЕСЛИОШИБКА(ИНДЕКС(Реестр!$A$2:$A$322;НАИМЕНЬШИЙ(ЕСЛИ(Реестр!$M$2:$M$322<5;СТРОКА(Реестр!$M$2:$M$322)-1;"");СТРОКА()-1));"")
я получаю все договора, у которых сроки меньше 5 дней. На листе они все выводятся по тому порядку как они размещены в реестре. Фильтр к данному листу применить нельзя так как он ругается, что нельзя изменять часть массива.
Как можно отсортировать их от самого просроченного и ниже?
Спасибо
 
Замените формулы на константы и отсортируйте
Изменено: Михаил Лебедев - 21.10.2020 18:38:07
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Если заменить формулу на значение, таблица станет не динамическая. А на этом листке потосянно должны добавлять и убавлять договора на сегодняшний день. Это возможно сделать?
Изменено: partnerclick - 21.10.2020 18:52:14
 
Ну я бы написал свою пользовательскую, где сразу и сортировал.
 
А как это можно сделать, приведете пример? Это, как я понимаю, все в одной формуле должно быть прописано
 
partnerclick, Вам никто без Вашего примера ничего не приведет - никому не интересно за вас придумывать исходные данные и желаемый результат
Не бойтесь совершенства. Вам его не достичь.
 
partnerclick, чтобы вы потом сказали - а у меня ваш пример не работает?
 
Добрый день. Пример во вложении. Как сделать, чтобы Алексеев, который в дебиторке, показывался сверху.
 
Доброе время суток
Цитата
partnerclick написал:
как решить задачу
Например, преобразовать данные на листе "Реестр" в умную таблицу, написать запрос Power Query к этой таблице с отбором нужных записей и столбцов, провести нужные вспомогательные вычисления, и, отсортировав в нужном порядке, вывести результат запроса на лист "Дебиторка". Если нужно не по ручному обновлению, то повесить на активацию листа "Дебиторка" принудительное обновление запроса.
Как-то так.
 
Можно вот такой массивной (Ctrl+Shift+Enter) формулой:
=ЕСЛИОШИБКА(ИНДЕКС(Реестр!C:C;ОСТАТ(НАИБОЛЬШИЙ(ЕСЛИ(Реестр!$M$2:$M$9<0;СТРОКА(Реестр!$2:$9)%%-Реестр!$M$2:$M$9);СТРОКА(C1));1)/1%%);"")
 
до кучи
Код
=СОРТ(ФИЛЬТР(ИНДЕКС(Реестр!A2:Q6;ПОСЛЕД(СЧЁТ(Реестр!A2:A6));{1;3;13;12;2;5;6;17});Реестр!M2:M6<0);3;1)
Соблюдение правил форума не освобождает от модераторского произвола
 
Цитата
partnerclick написал:
А как это можно сделать, приведете пример? Это, как я понимаю, все в одной формуле должно быть прописано
- вот именно.
И поэтому информация "Что сделали" тоже должна быть записана в источнике.
Формулу вводить сразу в весь диапазон как формулу массива (я серым залили ту область, куда ввёл формулу), и нужно ввести минимум на одну строку больше чем будет отобрано данных - если места не хватит, в последней строке будут предупреждение.

P.S. файл удалил, исправленный смотреть ниже. Добавил как параметр индекс столбца, по которому нужно сортировать.
Но всё что сказано в этом посте - в силе!
Изменено: Hugo - 24.10.2020 23:08:40
 
Большое всем спасибо за ответы, буду сейчас стараться разобраться во всем.

Hugo. извините, я не понял формулу вашу. Там нет ни одной функции, можете пожалуйста прокомментировать если не сложно? Что значит vivod в начале и почему она состоит только из столбцов через запятую? Спасибо

Цитата
Андрей VG написал: преобразовать данные на листе "Реестр" в умную таблицу, написать запрос Power Query к этой таблице...
Про Power Query Вообще не слышал, судя по первой информации из гугла это какое то дополнение. Почитаю, но видимо там еще сложнее формул. Я эту формулу, которая выше пытался сделать часа 2-3) Но все равно спасибо.

buchlotnik, в Вашей формуле присутствуют такие функции, которых у меня даже нету, к примеру, СОРТ, ФИЛЬТР, ПОСЛЕД. Я совсем не понял, что написано)

Светлый, Ваша формулы у меня работает, спасибо большое. Только можете, пожалуйста, дать пару комментариев.
1) Когда пишится С:С, это получается весь диапазон столбца С?
2) Последняя часть в значение функции ИНДЕКС, номер строки "/1%%", что это ? И что означает %%, заранее благодарю.
 
Это и есть функция! :)
И её параметры.
 
Светлый, а как сделать чтоб сортировало?
Изменено: Hugo - 24.10.2020 19:57:46
 
Можно сначала отсортировать исходную таблицу.
Или - вариант в файле (сначала вытащить все просрочки по убывающей
Всё сложное - не нужно. Всё нужное - просто /М. Т. Калашников/
 
Цитата
partnerclick написал:
"/1%%", что это ? И что означает %%
1%=0,01
1%%=0,0001
Цитата
Hugo написал:
Светлый , а как сделать чтоб  сортировало ?
Формула и делает сортировку с помощью функции НАИБОЛЬШИЙ(). Выбирает только отрицательные значения, добавляет к ним хвостик из номера строки, затем выбирает по уменьшению результат и с помощью добавленного хвостика выбирает нужную строку.
 
Аа, по просрочке нужно!...
А я по фамилиям почему-то сортировал :)
Ну тогда в моём коде нужно одну цифру поменять. А вообще её можно вывести в параметры.
P.S. Вот поправил. См. файл.
Изменено: Hugo - 24.10.2020 23:06:55
Страницы: 1
Наверх