Для сортировки таблицы вам нужно написать скрипт VBA. Вообще говоря, формула в ячейке не может влиять на содержимое другой ячейки (точнее, формула другой ячейки; одна ячейка может изменить значение других ячеек, если другие ячейки содержат формулу, которая ссылается на нее).
В качестве обходного пути, так как вы собираетесь сортировать таблицу назначения (т.е. таблицы) после обновления исходной таблицы (например, расписание), мы можем выполнить некоторую сортировку косвенно:
- Измените исходную таблицу, чтобы рейтинг автоматически рассчитывался
- Обновление таблицы назначения , так что содержимое ищутся из исходной таблицы с помощью
VLOOKUP
Шаг 1
Сделайте ранжирование по первому столбцу (т.е. столбцу A в этом примере) и сделайте формулу следующим образом:
A | B | C
--------------------------------------------------+------+-------------------
Rank | Team | Winning Percentage
=COUNTIF(C$2:C$9,">"&C2)+1 | A | 0.05
=COUNTIF(C$2:C$9,">"&C3)+COUNTIF(C$2:C2, C3)+1 | B | 0.99
=COUNTIF(C$2:C$9,">"&C4)+COUNTIF(C$2:C3, C4)+1 | C | 0.81
=COUNTIF(C$2:C$9,">"&C5)+COUNTIF(C$2:C4, C5)+1 | D | 0.92
=COUNTIF(C$2:C$9,">"&C6)+COUNTIF(C$2:C5, C6)+1 | E | 0.54
=COUNTIF(C$2:C$9,">"&C7)+COUNTIF(C$2:C6, C7)+1 | F | 0.15
=COUNTIF(C$2:C$9,">"&C8)+COUNTIF(C$2:C7, C8)+1 | G | 0.15
=COUNTIF(C$2:C$9,">"&C9)+COUNTIF(C$2:C8, C9)+1 | H | 0.40
Пожалуйста, обновите диапазон самостоятельно. Первый COUNTIF
подсчитывает, сколько команд имеет процент выигрыша, превышающий его, а второй COUNTIF
подсчитывает, сколько команд связано с ним. Это важно, потому что нам не нужно, чтобы дублирующееся ранжирование сбивало с толку VLOOKUP
.
Например, приведенный выше пример выглядит так:
Rank | Team | Winning Percentage
8 | A | 5%
1 | B | 99%
3 | C | 81%
2 | D | 92%
4 | E | 53%
6 | F | 15%
7 | G | 15%
5 | H | 40%
Как вы видите, команда F и команда G имеют одинаковый процент выигрыша, им присваивается различный рейтинг.
Шаг 2
В вашей таблице назначения (то есть в турнирной таблице) вам нужно обновить ее, используя множество VLOOKUP
:
A | B | C
-----+---------------------------------------------+------------------------------------------
Rank | Team | Winning percentage
1 | =VLOOKUP($A2,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A2,Schedule!$A$1:$C$9,3,FALSE)
2 | =VLOOKUP($A3,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A3,Schedule!$A$1:$C$9,3,FALSE)
3 | =VLOOKUP($A4,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A4,Schedule!$A$1:$C$9,3,FALSE)
4 | =VLOOKUP($A5,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A5,Schedule!$A$1:$C$9,3,FALSE)
5 | =VLOOKUP($A6,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A6,Schedule!$A$1:$C$9,3,FALSE)
6 | =VLOOKUP($A7,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A7,Schedule!$A$1:$C$9,3,FALSE)
7 | =VLOOKUP($A8,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A8,Schedule!$A$1:$C$9,3,FALSE)
8 | =VLOOKUP($A9,Schedule!$A$1:$C$9,2,FALSE) | =VLOOKUP($A9,Schedule!$A$1:$C$9,3,FALSE)
И вы получите свои результаты, как:
Rank | Team | Winning percentage
1 | B | 99%
2 | D | 92%
3 | C | 81%
4 | E | 53%
5 | H | 40%
6 | F | 15%
7 | G | 15%
8 | A | 5%