Вариант функции "рейтинг"
Литр
Дата: Воскресенье, 22.03.2026, 16:08 |
Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация:
0
±
Замечаний:
0% ±
2013
Доброго дня или вечера. Задача следующая: имеется список, который постоянно увеличивается. Необходимо распределить в порядке убывания в ячейках D2:D6 аргументы из массива А:А. Предположим что Иванов больше всего встречается в массиве, значит он должен быть в D2 и так по убыванию. Количество аргументов "фамилий" намного больше 5. Знаю что функцию "рейтинг" можно применить, но как ее прикрутить - чета не соображу Спасибо заранее
Доброго дня или вечера. Задача следующая: имеется список, который постоянно увеличивается. Необходимо распределить в порядке убывания в ячейках D2:D6 аргументы из массива А:А. Предположим что Иванов больше всего встречается в массиве, значит он должен быть в D2 и так по убыванию. Количество аргументов "фамилий" намного больше 5. Знаю что функцию "рейтинг" можно применить, но как ее прикрутить - чета не соображу Спасибо заранее Литр
Ответить
Сообщение Доброго дня или вечера. Задача следующая: имеется список, который постоянно увеличивается. Необходимо распределить в порядке убывания в ячейках D2:D6 аргументы из массива А:А. Предположим что Иванов больше всего встречается в массиве, значит он должен быть в D2 и так по убыванию. Количество аргументов "фамилий" намного больше 5. Знаю что функцию "рейтинг" можно применить, но как ее прикрутить - чета не соображу Спасибо заранее Автор - Литр Дата добавления - 22.03.2026 в 16:08
Egyptian
Дата: Воскресенье, 22.03.2026, 17:28 |
Сообщение № 2
Группа: Проверенные
Ранг: Ветеран
Сообщений: 538
Репутация:
203
±
Замечаний:
0% ±
Excel 2013/2016
Парочка вариантов (принцип первого, в свое время, позаимствовал у Светлого):Код
=INDEX(A:A;RIGHTB(MAX(COUNTIF(A$2:A$100;A$2:A$100)*(COUNTIF(D$1:D1;A$2:A$100)=0)*1000+ROW($A$2:$A$100));3))
и еще:Код
=INDEX(A:A;ROUND(MOD(AGGREGATE(14;6;(COUNTIF(A$2:A$100;A$2:A$100)*1000+ROW($A$2:$A$100))/(COUNTIF(G$1:G1;A$2:A$100)=0);1);1000);0))
Парочка вариантов (принцип первого, в свое время, позаимствовал у Светлого):Код
=INDEX(A:A;RIGHTB(MAX(COUNTIF(A$2:A$100;A$2:A$100)*(COUNTIF(D$1:D1;A$2:A$100)=0)*1000+ROW($A$2:$A$100));3))
и еще:Код
=INDEX(A:A;ROUND(MOD(AGGREGATE(14;6;(COUNTIF(A$2:A$100;A$2:A$100)*1000+ROW($A$2:$A$100))/(COUNTIF(G$1:G1;A$2:A$100)=0);1);1000);0))
Egyptian
Ответить
Сообщение Парочка вариантов (принцип первого, в свое время, позаимствовал у Светлого):Код
=INDEX(A:A;RIGHTB(MAX(COUNTIF(A$2:A$100;A$2:A$100)*(COUNTIF(D$1:D1;A$2:A$100)=0)*1000+ROW($A$2:$A$100));3))
и еще:Код
=INDEX(A:A;ROUND(MOD(AGGREGATE(14;6;(COUNTIF(A$2:A$100;A$2:A$100)*1000+ROW($A$2:$A$100))/(COUNTIF(G$1:G1;A$2:A$100)=0);1);1000);0))
Автор - Egyptian Дата добавления - 22.03.2026 в 17:28
MikeVol
Дата: Воскресенье, 22.03.2026, 19:33 |
Сообщение № 3
Группа: Проверенные
Ранг: Обитатель
Сообщений: 479
Репутация:
116
±
Замечаний:
0% ±
MSO LTSC 2021 EN
Литр , А что по соседней теме, подошло решение или вам что-то мешает отвечать в темах?
Литр , А что по соседней теме, подошло решение или вам что-то мешает отвечать в темах?MikeVol
Ученик. Одесса - Украина
Сообщение отредактировал MikeVol - Воскресенье, 22.03.2026, 19:34
Ответить
Сообщение Литр , А что по соседней теме, подошло решение или вам что-то мешает отвечать в темах?Автор - MikeVol Дата добавления - 22.03.2026 в 19:33
Pelena
Дата: Воскресенье, 22.03.2026, 20:11 |
Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19612
Репутация:
4671
±
Замечаний:
±
Excel 365 & Mac Excel
Вариант сводной таблицей
Вариант сводной таблицей Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Вариант сводной таблицей Автор - Pelena Дата добавления - 22.03.2026 в 20:11 Ответить
Сообщение Pelena , вариант со сводной таблицей тоже годится но формулы с индексами от Egyptian , четче работают Всем спасибо Автор - Литр Дата добавления - 23.03.2026 в 09:22
Литр
Дата: Понедельник, 06.04.2026, 14:32 |
Сообщение № 6
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация:
0
±
Замечаний:
0% ±
2013
Egyptian , Список перевалил за 1000 и перестал работать. Пытался изменить диапазон A$2:A$100 на что то типа A$2:A$5000 - не сработало. Подскажи пожалуйста, как изменить . А еще с наполнением книга стала заметно притормаживать. Может есть смысл и возможность включить в работу функции динамический диапазон, так чтобы формула считала не весь столбец А:А, а только заполнные ячейки с учетом того что строки заполняются последовательно, то есть на сегодня например лист заполнен до 1040 строки, а через месяц будет примерно 1500 строк.
Egyptian , Список перевалил за 1000 и перестал работать. Пытался изменить диапазон A$2:A$100 на что то типа A$2:A$5000 - не сработало. Подскажи пожалуйста, как изменить . А еще с наполнением книга стала заметно притормаживать. Может есть смысл и возможность включить в работу функции динамический диапазон, так чтобы формула считала не весь столбец А:А, а только заполнные ячейки с учетом того что строки заполняются последовательно, то есть на сегодня например лист заполнен до 1040 строки, а через месяц будет примерно 1500 строк.Литр
Ответить
Сообщение Egyptian , Список перевалил за 1000 и перестал работать. Пытался изменить диапазон A$2:A$100 на что то типа A$2:A$5000 - не сработало. Подскажи пожалуйста, как изменить . А еще с наполнением книга стала заметно притормаживать. Может есть смысл и возможность включить в работу функции динамический диапазон, так чтобы формула считала не весь столбец А:А, а только заполнные ячейки с учетом того что строки заполняются последовательно, то есть на сегодня например лист заполнен до 1040 строки, а через месяц будет примерно 1500 строк.Автор - Литр Дата добавления - 06.04.2026 в 14:32
alexa1965
Дата: Понедельник, 06.04.2026, 15:53 |
Сообщение № 7
Группа: Проверенные
Ранг: Обитатель
Сообщений: 458
Репутация:
67
±
Замечаний:
0% ±
2003> 2019 >2016
Литр , А если так изменить Код
=ИНДЕКС(A$1:A$5000;ОКРУГЛ(ОСТАТ(АГРЕГАТ(14;6;(СЧЁТЕСЛИ(A$2:A$5000;A$2:A$5000)*1000+СТРОКА($A$2:$A$5000))/(СЧЁТЕСЛИ(G$1:G1;A$2:A$5000)=0);1);1000);0))
Да и первый вариант от Светлого массивный и будет тормозить однозначно
Литр , А если так изменить Код
=ИНДЕКС(A$1:A$5000;ОКРУГЛ(ОСТАТ(АГРЕГАТ(14;6;(СЧЁТЕСЛИ(A$2:A$5000;A$2:A$5000)*1000+СТРОКА($A$2:$A$5000))/(СЧЁТЕСЛИ(G$1:G1;A$2:A$5000)=0);1);1000);0))
Да и первый вариант от Светлого массивный и будет тормозить однозначноalexa1965
Главное не быть балабастиком
Сообщение отредактировал alexa1965 - Понедельник, 06.04.2026, 15:55
Ответить
Сообщение Литр , А если так изменить Код
=ИНДЕКС(A$1:A$5000;ОКРУГЛ(ОСТАТ(АГРЕГАТ(14;6;(СЧЁТЕСЛИ(A$2:A$5000;A$2:A$5000)*1000+СТРОКА($A$2:$A$5000))/(СЧЁТЕСЛИ(G$1:G1;A$2:A$5000)=0);1);1000);0))
Да и первый вариант от Светлого массивный и будет тормозить однозначноАвтор - alexa1965 Дата добавления - 06.04.2026 в 15:53
Литр
Дата: Понедельник, 06.04.2026, 17:29 |
Сообщение № 8
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация:
0
±
Замечаний:
0% ±
2013
alexa1965 , эх, было бы так просто Не работает
alexa1965 , эх, было бы так просто Не работаетЛитр
Ответить
Сообщение alexa1965 , эх, было бы так просто Не работаетАвтор - Литр Дата добавления - 06.04.2026 в 17:29
bigor
Дата: Понедельник, 06.04.2026, 21:22 |
Сообщение № 9
Группа: Проверенные
Ранг: Старожил
Сообщений: 1420
Репутация:
279
±
Замечаний:
0% ±
нет
Вы увеличили размер диапазонов, но учли *1000, при увеличении диапазонов, нужно и ее увеличивать. В теме не указано, что у вас "старый" офис, почему бы не попробовать с новыми УНИК, СОРТ
Вы увеличили размер диапазонов, но учли *1000, при увеличении диапазонов, нужно и ее увеличивать. В теме не указано, что у вас "старый" офис, почему бы не попробовать с новыми УНИК, СОРТ bigor
Сообщение отредактировал bigor - Понедельник, 06.04.2026, 21:30
Ответить
Сообщение Вы увеличили размер диапазонов, но учли *1000, при увеличении диапазонов, нужно и ее увеличивать. В теме не указано, что у вас "старый" офис, почему бы не попробовать с новыми УНИК, СОРТ Автор - bigor Дата добавления - 06.04.2026 в 21:22
прохожий2019
Дата: Понедельник, 06.04.2026, 21:53 |
Сообщение № 10
Группа: Проверенные
Ранг: Старожил
Сообщений: 1417
Репутация:
376
±
Замечаний:
0% ±
365 Beta Channel
Код
=ВЗЯТЬ(ГРУПППО(A:.A;A:.A;СЧЁТЗ;0;0;-2);5)
только динамические появились несколько позже, чем 2013 версия
Код
=ВЗЯТЬ(ГРУПППО(A:.A;A:.A;СЧЁТЗ;0;0;-2);5)
только динамические появились несколько позже, чем 2013 версияпрохожий2019
Ответить
Сообщение Код
=ВЗЯТЬ(ГРУПППО(A:.A;A:.A;СЧЁТЗ;0;0;-2);5)
только динамические появились несколько позже, чем 2013 версияАвтор - прохожий2019 Дата добавления - 06.04.2026 в 21:53
прохожий2019
Дата: Понедельник, 06.04.2026, 21:53 |
Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 1417
Репутация:
376
±
Замечаний:
0% ±
365 Beta Channel
почему бы не попробовать с новыми УНИК, СОРТ
потому что с ГРУПППО проще
почему бы не попробовать с новыми УНИК, СОРТ
потому что с ГРУПППО проще прохожий2019
Ответить
Сообщение почему бы не попробовать с новыми УНИК, СОРТ
потому что с ГРУПППО проще Автор - прохожий2019 Дата добавления - 06.04.2026 в 21:53
Литр
Дата: Понедельник, 06.04.2026, 23:18 |
Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация:
0
±
Замечаний:
0% ±
2013
как она зависит от размера диапазона? Какое значение необходимо установить при диапазоне 2000, 3000, 4000, 5000?
как она зависит от размера диапазона? Какое значение необходимо установить при диапазоне 2000, 3000, 4000, 5000?Литр
Ответить
Сообщение как она зависит от размера диапазона? Какое значение необходимо установить при диапазоне 2000, 3000, 4000, 5000?Автор - Литр Дата добавления - 06.04.2026 в 23:18
Nic70y
Дата: Вторник, 07.04.2026, 07:55 |
Сообщение № 13
Группа: Друзья
Ранг: Экселист
Сообщений: 9260
Репутация:
2495
±
Замечаний:
0% ±
Excel 2010
вариант с доп.столбцом
К сообщению приложен файл:
27.xlsx
(11.4 Kb)
Ответить
Сообщение вариант с доп.столбцом Автор - Nic70y Дата добавления - 07.04.2026 в 07:55
Литр
Дата: Вторник, 07.04.2026, 09:38 |
Сообщение № 14
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация:
0
±
Замечаний:
0% ±
2013
Nic70y , Рабочий вариант. На 1100 строк отрабатывает корректно
Nic70y , Рабочий вариант. На 1100 строк отрабатывает корректно Литр
Ответить
Сообщение Nic70y , Рабочий вариант. На 1100 строк отрабатывает корректно Автор - Литр Дата добавления - 07.04.2026 в 09:38
bigor
Дата: Вторник, 07.04.2026, 11:50 |
Сообщение № 15
Группа: Проверенные
Ранг: Старожил
Сообщений: 1420
Репутация:
279
±
Замечаний:
0% ±
нет
как она зависит от размера диапазона?
ставьте сразу миллион
как она зависит от размера диапазона?
ставьте сразу миллионbigor
Ответить
Сообщение как она зависит от размера диапазона?
ставьте сразу миллионАвтор - bigor Дата добавления - 07.04.2026 в 11:50
Pelena
Дата: Вторник, 07.04.2026, 13:15 |
Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 19612
Репутация:
4671
±
Замечаний:
±
Excel 365 & Mac Excel
Список перевалил за 1000 и перестал работать
вот поэтому сводные - наше всё
Список перевалил за 1000 и перестал работать
вот поэтому сводные - наше всё Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Список перевалил за 1000 и перестал работать
вот поэтому сводные - наше всё Автор - Pelena Дата добавления - 07.04.2026 в 13:15
Egyptian
Дата: Вторник, 07.04.2026, 20:30 |
Сообщение № 17
Группа: Проверенные
Ранг: Ветеран
Сообщений: 538
Репутация:
203
±
Замечаний:
0% ±
Excel 2013/2016
Литр , Так то оно конечно можно, но использовать такие формулы на большом объеме данных это очень плохая затея. Вот еще вариант, чуть полегче, но с ростом днных итог будет один.Код
=IFERROR(INDEX(D$2:D$5000;MODE(IF((COUNTIF(G$1:G1;D$2:D$5000)=0)*(D$2:D$5000>0);MATCH(D$2:D$5000;D$2:D$5000;0)+{0\0})));"")
В целом это задача для макроса или PQ.
Литр , Так то оно конечно можно, но использовать такие формулы на большом объеме данных это очень плохая затея. Вот еще вариант, чуть полегче, но с ростом днных итог будет один.Код
=IFERROR(INDEX(D$2:D$5000;MODE(IF((COUNTIF(G$1:G1;D$2:D$5000)=0)*(D$2:D$5000>0);MATCH(D$2:D$5000;D$2:D$5000;0)+{0\0})));"")
В целом это задача для макроса или PQ.Egyptian
Сообщение отредактировал Egyptian - Вторник, 07.04.2026, 20:31
Ответить
Сообщение Литр , Так то оно конечно можно, но использовать такие формулы на большом объеме данных это очень плохая затея. Вот еще вариант, чуть полегче, но с ростом днных итог будет один.Код
=IFERROR(INDEX(D$2:D$5000;MODE(IF((COUNTIF(G$1:G1;D$2:D$5000)=0)*(D$2:D$5000>0);MATCH(D$2:D$5000;D$2:D$5000;0)+{0\0})));"")
В целом это задача для макроса или PQ.Автор - Egyptian Дата добавления - 07.04.2026 в 20:30