1

Я сохраняю результаты сезона бейсбольной настольной игры Strat-O-Matic в электронной таблице Excel (Excel 2011 для Mac). Лист имеет расписание лиги и лиги. Я уже настроил его так, чтобы каждый раз, когда я вводил счет игры, турнирная таблица обновлялась, чтобы отразить новые рекорды побед-поражений команд, которые участвовали в этой игре.

После того, как я введу счет игры, я бы хотел, чтобы турнирная таблица сортировалась автоматически, а не сортировалась вручную по процентам выигрышей. Если это что-то меняет, на самом деле в этой лиге есть четыре разных турнирных таблицы, по одной для каждого из четырех дивизионов. Все они должны быть индивидуально отсортированы по процентам выигрышей при каждом обновлении таблицы.

Любая помощь приветствуется, спасибо.

1 ответ1

2

Для сортировки таблицы вам нужно написать скрипт VBA. Вообще говоря, формула в ячейке не может влиять на содержимое другой ячейки (точнее, формула другой ячейки; одна ячейка может изменить значение других ячеек, если другие ячейки содержат формулу, которая ссылается на нее).

В качестве обходного пути, так как вы собираетесь сортировать таблицу назначения (т.е. таблицы) после обновления исходной таблицы (например, расписание), мы можем выполнить некоторую сортировку косвенно:

  1. Измените исходную таблицу, чтобы рейтинг автоматически рассчитывался
  2. Обновление таблицы назначения , так что содержимое ищутся из исходной таблицы с помощью 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%

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .