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

Почему кнопку списка в проверке данных Excel исчезают?
В Excel 2013, мастер импорта текста, есть ли способ иметь несколько" другие " значения?
Excel 2016-смещение динамической высоты и диаграммы водопада
Переупорядочивание данных электронной таблицы
Excel VBA: кол-во разделителей
Как подсчитать количество вхождений определенной последовательности чисел в столбце?
Как объединить несколько строк в столбец
Как объединить два списка в один длинный список?
Связанные диаграммы Excel 2010 не будут показывать коды полей в Word 2010-Что я делаю неправильно?
В Excel 2016 открывается новое пустое окно при открытии файла из Проводника с панели предварительного просмотра?
Excel выбрать до конца соседнего столбца
Слияние Данных Из Нескольких Столбцов - Результаты SharePoint Survery
Увеличение столбцов VBA Excel
Уникальный генератор случайных чисел из заданного набора значений [дубликат]
Как вставить даты в 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