Как автоматически сортировать таблицу в Excel при каждом обновлении одного из ее значений?

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

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

любая помощь ценится, спасибо.

11
задан Evan Olawsky
12.04.2023 10:47 Количество просмотров материала 2647
Распечатать страницу

1 ответ

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

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

  1. изменить исходную таблицу так, чтобы рейтинг автоматически рассчитывается
  2. обновите целевую таблицу так, чтобы ее содержимое просматривалось из исходной таблицы 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%
2
отвечен Kenneth L 2023-04-13 18:35

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх