Похожие вопросы

(Excel) Как объединить две гистограммы, одну со стандартной осью y, другую с перевернутой
Экспортировать графики Excel в файлы векторной графики (например, SVG)?
ошибка excel sql server: недопустимое имя объекта
Как получить последний лист в Excel VBA?
Какие метаданные" sep= " можно добавить в CSV?
Как построить график нескольких фактических vs целевых в диаграмме? Стрелки вверх вниз? А как показать кумулятивное?
ВПР по нескольким критериям
Копировать значения, разделенные запятыми, в две ячейки excel
Как условно заполнить одну ячейку, основываясь на содержании двух ячеек?
Как проверить, содержит ли ячейка значение другой ячейки
Как добавить фотографии в определенные ячейки листа Excel с компьютера? [закрытый]
Как использовать пользовательский значок на панели быстрого доступа MS Office 2016?
Как выделить точки данных в точечной диаграмме в excel?
Как добавить флажки в раскрывающийся список в Excel или Google Таблицах?
Сравнение двух неупорядоченных списков в Excel и возврат различий [дубликат]

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

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

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

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

5
задан Evan Olawsky
источник

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 2016-10-14 02:29:49
источник

Другие вопросы microsoft-excel microsoft-excel-2011