Ранжирование на основе 4 столбцов

Вопрос:

Я работаю над своей базой данных в excel… Мне нужно ранжировать Scorers, рассматривая 4 оценки в лиге. Я хочу, чтобы рейтинг основывался на десятках лиг с приоритетом от 1 до 4, т.е. кто набрал наибольшее количество очков в лиге 1, был бы первым, и если бы оценка в лиге 1, то рассмотрите лиги 2 баллы и т.д…. мой стол как following-, пожалуйста, если вы знаете, помогите мне за ранжирование для моего стола…

…………………. В…………… С……………. D………………………….. Е Ж

======= ======= ======= ======= =======================================================

1……. ID…… Оценка 1…… Оценка 2…… Оценка 3…… Оценка 4…… Ранг

2…… N01…. 12…………… 4…………….. 3……………. 18
3…… N02…. 15…………… 4…………….. 6……………. 13
4…… N03…. 12…………… 5…………….. 4……………. 11
5…… N04…. 12…………… 4…………….. 3……………. 3
6…… N05…. 15…………… 5…………….. 5… 8
7…… N06…. 16…………… 3…………….. 2……………. 3
8…… N07…. 12…………… 4…………….. 5……………. 12
9…… N08…. 10…………… 5…………….. 4……………. 9
10….. N09…. 13…………… 6…………….. 4……………. 17
11….. N10…. 10…………… 5…………….. 4……………. 5

Для ранжирования по 2 полям я использовал эти формулы:

интермидационный итог в F2 – F11 –

= RANK (В2, В $ 2: B $ 11,0) +SUMPRODUCT ((В2 = В $ 2: B $ 11) * (С2

и Ранг в G2 – = RANK (F2, F $ 2: F $ 11,1)

Но я не могу сделать это для ранжирования на основе 4 столбцов… Help plz

Лучший ответ:

Конечно, самый простой способ сделать это – просто Data > Sort и выполнить 4 уровня сортировки (Score1,…, Score4), но мне понравился этот вопрос, чтобы посмотреть, могу ли я сделать это с помощью формул….

Самый приятный способ, которым я мог бы сделать это без VBA, – это добавить несколько вспомогательных столбцов.

Для этого введите следующие формулы:

F2: =B2
G2: =F2 & " - " & SUM(IF(B2=B$2:B$11,IF(C2>=C$2:C$11,1,0)))

И введите G2 в виде формулы массива, используя ctrl + shift + enter.

Затем перетащите G2 поперек до I2 а затем просто заполните столбцы F:I для вашего набора данных.

Теперь, если вы сортируете, основываясь на столбце I, вы будете иметь упорядоченные данные по своему желанию.


Конечно, вы можете сделать все это в одной большой и уродливой формуле в одной ячейке за строку:

=B2& " - " & SUM(IF(B2=B$2:B$11,IF(C2>=C$2:C$11,1,0)))& " - " & SUM(IF(C2=C$2:C$11,IF(D2>=D$2:D$11,1,0)))& " - " & SUM(IF(D2=D$2:D$11,IF(E2>=E$2:E$11,1,0)))

но это, похоже, лучшее решение IMHO.


Надеюсь, это трюк!


РЕДАКТИРОВАТЬ:

В ответ на ваш комментарий ниже, чтобы получить звание, вам понадобятся 2 дополнительных столбца (мальчик, это становится длинным: p)…

Введите следующее:

J2: =SUMPRODUCT((I2>=$I$2:$I$11)+0)+1
K2: =RANK(J2,$J$2:$J$11,1)+COUNTIF($J$2:OFFSET(J2,0,0),J2)-1

Это даст вам ранг, используя нечисловые данные.

Надеюсь, это полностью удовлетворит ваши критерии, но это довольно уродливо. Как я уже сказал, мне понравилась эта задача, но лучшим способом было бы просто создать функцию VBA, которая позаботилась об этом для вас…

Ответ №1

Если вы знаете, что баллы будут ограничены (например, всегда ниже 100), вы можете рассчитать взвешенный балл, например

WEIGHTED_SCORE = (((SCORE1*100) + SCORE2)*100 + SCORE3)*100 + SCORE4
= SCORE1*100^3 + SCORE2*100^2 + SCORE3*100 + SCORE4

Затем ранг, основанный на взвешенной оценке

Оцените статью
TechArks.Ru
Добавить комментарий