это можно легко сделать как серию
Формула Excel
Краткий ответ, ДА. (В зависимости от вашего определения «легко»).
Длинный ответ ...
(я думаю это работает)
Вот мои (краткие) данные испытаний:
A B C D
1 NAME CLUB STATUS SCORE
2 Kevin a Gent 145
3 Lyle a Gent 150
4 Martin a Gent 195
5 Norm a Gent 150
6 Oonagh a Lady 100
7 Arthur b Gent 200
8 Brian b Gent 210
9 Charlie b Gent 190
10 Donald b Gent 220
11 Eddie b Junior 150
12 Quentin c Gent 145
13 Ryan c Gent 150
14 Sheila c Lady 195
15 Trevor c Gent 150
16 Ursula c Junior 200
Теперь, если я правильно понял правила, мы хотим получить лучшие четыре балла, за исключением того, что, если наивысшая оценка, полученная девушкой или юниором, не входит в лучшие четыре, мы используем ее вместо четвертого наивысшего. Я переформулировал это несколько раз по причинам, которые могут стать очевидными ...
OK. Массив формул на помощь! (Надеюсь)
Наивысшая оценка команды А должна составлять
{=LARGE(IF(B2:B16="a",D2:D16,0),1)}
где {} указывает формулу массива, созданную с помощью Control-Shift-Enter для ввода формулы. Лучшие четыре созданы аналогично. Для Леди / Джуниора нам нужно немного больше сложности. Взяв Леди, нам нужно это:
{=LARGE(IF($B$2:$B$16=$J3,IF($C$2:$C$16="Lady",$D$2:$D$16,0),0),1)}
Я надеюсь, что младшего можно спокойно оставить в качестве упражнения для ученика.
Я сейчас смотрю на стол со следующей раскладкой для клуба "а"
J K L M N O P
1 Club 1 2 3 4 Lady Junior
2 a 195 150 150 145 100 0
Клубный счет должен быть в тройке лучших "кто угодно" плюс лучшая дама или юниор , если они еще не вошли в первую четверку .
Итак, во втором квартале я помещаю это:
=SUM(K2:M2)+MIN(MAX(O2,P2),N2)
MAX (O2, P2) говорит мне лучшую женскую или младшую оценку, которая должна быть включена. Если он выше, чем четвертый результат команды, он уже в списке, и мы просто берем четверку лучших. В противном случае мы заменяем четвертый по величине балл на лучшую женскую / младшую.
Теперь мы можем сделать все это в одной формуле, подставив части в окончательную формулу:
{=LARGE(IF($B$2:$B$16=$J3,$D$2:$D$16,0),1)+
LARGE(IF($B$2:$B$16=$J3,$D$2:$D$16,0),2)+
LARGE(IF($B$2:$B$16=$J3,$D$2:$D$16,0),3)+
MIN(LARGE(IF($B$2:$B$16=$J3,$D$2:$D$16,0),4),
MAX(LARGE(IF($B$2:$B$18=$J3,IF($C$2:$C$18="Lady",$D$2:$D$18,0),0),1),
LARGE(IF($B$2:$B$18=$J3,IF($C$2:$C$18="Junior",$D$2:$D$18,0),0),1)))}
Но я не рекомендую это ...
Итак, для приведенных выше данных я получаю следующее:
Anyone Lady Junior
Club 1 2 3 4 1 1 Total
a 195 150 150 145 100 0 595
b 220 210 200 190 0 150 780
c 200 195 150 150 195 200 695
Крысы. В моем волнении (я думаю) заставить трудную часть работать, я забыл упомянуть, что
- Список баллов может быть в любом порядке
- Вы можете получить рейтинг клуба с помощью RANK ()
- Затем вы можете вытянуть первые 10 в другую таблицу, используя MATCH () и INDEX ()
A B C D E F G H
1 club Sc Rank UniqRk Pos Club Score
2 third-equal#1 80 3 79.999980 1 1 best 100
3 second 90 2 89.999970 2 2 second 90
4 third-equal#2 80 3 79.999960 3 3 third-equal#1 80
5 best 100 1 99.999950 4 3 third-equal#2 80
6 worst 70 5 69.999940 5 5 worst 70
Столбцы A и B - это наши расчетные результаты, а столбец E - порядок, в котором клубы будут выводиться в финальной таблице. Другие формулы следующие:
C: =RANK(B2,$B$2:$B$6) # what it says, with ties both getting the lower number
D: =B2-ROW()*0.00001 # score, modified slightly to ensure uniqueness
F: =SMALL($C$2:$C$6,E2) # first output column, ranks including ties
G: =INDEX($A$2:$A$6,MATCH(LARGE($D$2:$D$6,E2),$D$2:$D$6,0))
# club name for position, using the modified score in D
H: =INDEX($B$2:$B$6,MATCH(LARGE($D$2:$D$6,E2),$D$2:$D$6,0))
# as G, but indexes into scores