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

Вход

Регистрация

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

 

= Мир MS Excel/Вариант функции "рейтинг" - Мир MS Excel

  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_, DrMini  
Вариант функции "рейтинг"
Литр Дата: Воскресенье, 22.03.2026, 16:08 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация: 0 ±
Замечаний: 0% ±

2013
Доброго дня или вечера.
Задача следующая:
имеется список, который постоянно увеличивается. Необходимо распределить в порядке убывания в ячейках D2:D6 аргументы из массива А:А.
Предположим что Иванов больше всего встречается в массиве, значит он должен быть в D2 и так по убыванию.
Количество аргументов "фамилий" намного больше 5.

Знаю что функцию "рейтинг" можно применить, но как ее прикрутить - чета не соображу

Спасибо заранее
К сообщению приложен файл: rejting.xlsx (8.7 Kb)
 
Ответить
СообщениеДоброго дня или вечера.
Задача следующая:
имеется список, который постоянно увеличивается. Необходимо распределить в порядке убывания в ячейках 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))
К сообщению приложен файл: 2543643.xlsx (9.4 Kb)
 
Ответить
СообщениеПарочка вариантов (принцип первого, в свое время, позаимствовал у Светлого):
Код
=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 - Воскресенье, 22.03.2026, 19:34
 
Ответить
СообщениеЛитр, А что по соседней теме, подошло решение или вам что-то мешает отвечать в темах?

Автор - MikeVol
Дата добавления - 22.03.2026 в 19:33
Pelena Дата: Воскресенье, 22.03.2026, 20:11 | Сообщение № 4
Группа: Админы
Ранг: Местный житель
Сообщений: 19612
Репутация: 4671 ±
Замечаний: ±

Excel 365 & Mac Excel
Вариант сводной таблицей
К сообщению приложен файл: 8246518.xlsx (13.0 Kb)


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
СообщениеВариант сводной таблицей

Автор - Pelena
Дата добавления - 22.03.2026 в 20:11
Литр Дата: Понедельник, 23.03.2026, 09:22 | Сообщение № 5
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация: 0 ±
Замечаний: 0% ±

2013
Pelena, вариант со сводной таблицей тоже годится но формулы с индексами от Egyptian, четче работают

Всем спасибо hands hands hands
 
Ответить
СообщениеPelena, вариант со сводной таблицей тоже годится но формулы с индексами от Egyptian, четче работают

Всем спасибо hands hands hands

Автор - Литр
Дата добавления - 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 строк.

Автор - Литр
Дата добавления - 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))
Да и первый вариант от Светлого массивный и будет тормозить однозначно


Главное не быть балабастиком

Сообщение отредактировал 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, эх, было бы так просто :D
Не работает
К сообщению приложен файл: 878787.xlsx (347.6 Kb)
 
Ответить
Сообщениеalexa1965, эх, было бы так просто :D
Не работает

Автор - Литр
Дата добавления - 06.04.2026 в 17:29
bigor Дата: Понедельник, 06.04.2026, 21:22 | Сообщение № 9
Группа: Проверенные
Ранг: Старожил
Сообщений: 1420
Репутация: 279 ±
Замечаний: 0% ±

нет
Не работает
Вы увеличили размер диапазонов, но учли *1000, при увеличении диапазонов, нужно и ее увеличивать.

В теме не указано, что у вас "старый" офис, почему бы не попробовать с новыми УНИК, СОРТ


Сообщение отредактировал 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
Дата добавления - 06.04.2026 в 21:53
прохожий2019 Дата: Понедельник, 06.04.2026, 21:53 | Сообщение № 11
Группа: Проверенные
Ранг: Старожил
Сообщений: 1417
Репутация: 376 ±
Замечаний: 0% ±

365 Beta Channel
почему бы не попробовать с новыми УНИК, СОРТ
потому что с ГРУПППО проще :)
 
Ответить
Сообщение
почему бы не попробовать с новыми УНИК, СОРТ
потому что с ГРУПППО проще :)

Автор - прохожий2019
Дата добавления - 06.04.2026 в 21:53
Литр Дата: Понедельник, 06.04.2026, 23:18 | Сообщение № 12
Группа: Пользователи
Ранг: Участник
Сообщений: 52
Репутация: 0 ±
Замечаний: 0% ±

2013
нужно и ее увеличивать.


как она зависит от размера диапазона? Какое значение необходимо установить при диапазоне 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 строк отрабатывает корректно specool
 
Ответить
СообщениеNic70y, Рабочий вариант. На 1100 строк отрабатывает корректно specool

Автор - Литр
Дата добавления - 07.04.2026 в 09:38
bigor Дата: Вторник, 07.04.2026, 11:50 | Сообщение № 15
Группа: Проверенные
Ранг: Старожил
Сообщений: 1420
Репутация: 279 ±
Замечаний: 0% ±

нет
как она зависит от размера диапазона?
ставьте сразу миллион
 
Ответить
Сообщение
как она зависит от размера диапазона?
ставьте сразу миллион

Автор - bigor
Дата добавления - 07.04.2026 в 11:50
Pelena Дата: Вторник, 07.04.2026, 13:15 | Сообщение № 16
Группа: Админы
Ранг: Местный житель
Сообщений: 19612
Репутация: 4671 ±
Замечаний: ±

Excel 365 & Mac Excel
Список перевалил за 1000 и перестал работать

вот поэтому сводные - наше всё :D


"Черт возьми, Холмс! Но как??!!"
Ю-money 41001765434816
 
Ответить
Сообщение
Список перевалил за 1000 и перестал работать

вот поэтому сводные - наше всё :D

Автор - 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.
К сообщению приложен файл: 6347596.xlsx (348.1 Kb)


Сообщение отредактировал 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
  • Страница 1 из 1
  • 1
Поиск:

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