для сортировки таблицы вам нужно написать сценарий VBA. Вообще говоря, формула в ячейке не может влиять на содержимое другой ячейки (формула другой ячейки должна быть точной; одна ячейка может изменять значение других ячеек, если другие ячейки содержат формулу, ссылающуюся на нее).
в качестве обходного пути, так как вы собираетесь сортировать таблицу назначения (т. е. турнирную таблицу) после обновления исходной таблицы (т. е. Расписание), мы можем сделать некоторую сортировку косвенно:
- изменить исходную таблицу так, чтобы рейтинг автоматически рассчитывается
- обновите целевую таблицу так, чтобы ее содержимое просматривалось из исходной таблицы
VLOOKUP
.
Шаг 1
сделайте рейтинг первым столбцом (т. е. столбцом A в этом примере) и сделайте формулу так:
A | B | C
--------------------------------------------------+------+-------------------
Rank | Team | Winning Percentage
=COUNTIF(C:C,">"&C2)+1 | A | 0.05
=COUNTIF(C:C,">"&C3)+COUNTIF(C:C2, C3)+1 | B | 0.99
=COUNTIF(C:C,">"&C4)+COUNTIF(C:C3, C4)+1 | C | 0.81
=COUNTIF(C:C,">"&C5)+COUNTIF(C:C4, C5)+1 | D | 0.92
=COUNTIF(C:C,">"&C6)+COUNTIF(C:C5, C6)+1 | E | 0.54
=COUNTIF(C:C,">"&C7)+COUNTIF(C:C6, C7)+1 | F | 0.15
=COUNTIF(C:C,">"&C8)+COUNTIF(C:C7, C8)+1 | G | 0.15
=COUNTIF(C:C,">"&C9)+COUNTIF(C: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:$C,2,FALSE) | =VLOOKUP($A2,Schedule!$A:$C,3,FALSE)
2 | =VLOOKUP($A3,Schedule!$A:$C,2,FALSE) | =VLOOKUP($A3,Schedule!$A:$C,3,FALSE)
3 | =VLOOKUP($A4,Schedule!$A:$C,2,FALSE) | =VLOOKUP($A4,Schedule!$A:$C,3,FALSE)
4 | =VLOOKUP($A5,Schedule!$A:$C,2,FALSE) | =VLOOKUP($A5,Schedule!$A:$C,3,FALSE)
5 | =VLOOKUP($A6,Schedule!$A:$C,2,FALSE) | =VLOOKUP($A6,Schedule!$A:$C,3,FALSE)
6 | =VLOOKUP($A7,Schedule!$A:$C,2,FALSE) | =VLOOKUP($A7,Schedule!$A:$C,3,FALSE)
7 | =VLOOKUP($A8,Schedule!$A:$C,2,FALSE) | =VLOOKUP($A8,Schedule!$A:$C,3,FALSE)
8 | =VLOOKUP($A9,Schedule!$A:$C,2,FALSE) | =VLOOKUP($A9,Schedule!$A:$C,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%