Сортировать сводную таблицу Excel 2007 по убыванию по последнему столбцу с помощью VBA - PullRequest
0 голосов
/ 29 июня 2011

Спасибо, ребята!Думаю, я объяснил свою проблему немного расплывчато.Я прилагаю два экрана печати, чтобы проиллюстрировать мою проблему.

Экраны печати: http://imageshack.us/photo/my-images/804/illustrasjon.jpg

В моей сводной таблице отображаются остановки [минуты] по указанным причинам на производственной линии.Колонка «Totalt» недели (в которой изменяется количество рабочих дней) - это то, на чем я хочу сосредоточиться, чтобы направить усилия по улучшению в нужное место.Сортировка будет выполняться ежедневно другими, кроме меня, и у них действительно должна быть кнопка для нажатия, а не сортировка через панель параметров.

NB!Столбец «Сумма» не является частью сводной таблицы.Это просто вычисление столбца Totalt для фиксированного столбца, чтобы сделать секторную диаграмму отсортированного результата, поскольку невозможно сделать сводную диаграмму из столбца Totalt.

TheСтолбец Mål per dag '- это просто дневная (минутная) цель, в рамках которой я хочу сохранить остановки производства по определенной причине, поэтому это следует исключить из столбца' Totalt ', но это менее важно.


У меня есть сводная таблица, отфильтрованная по неделям, показывающая любое количество дней от одного до пяти.Таким образом, итоговый столбец справа, в котором суммируются значения дней, «движется», и поэтому я не могу просто записать макрос.Я хочу создать макрос, который сортирует сводную таблицу по убыванию по столбцу итогов.

Я не говорю на международном языке VBA, но представьте, что это довольно просто для того, кто это делает.

Безмерно благодарен всем, кто хочет написать код для меня!

С уважением, Ганс

Ответы [ 2 ]

3 голосов
/ 29 июня 2011

Hans

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

enter image description here

Выберите столбец, по которому вы хотите отсортировать:

enter image description here

Это может быть немного проблематично для вас, потому что сводная таблица не обновляется автоматически при изменении ваших данных. Если вы хотите, чтобы он обновлялся в режиме реального времени, вам нужно добавить обработчик события «Worksheet_Change» в код VBA. Для этого нажмите Alt + F11, чтобы вызвать VBA, и на листе с исходными данными введите следующее:

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    PivotTables("PivotTable1").RefreshTable
    Application.EnableEvents = True
End Sub

Здесь «Сводная таблица1» изменится в соответствии с именем вашей сводной таблицы. Это имя появляется на ленте, если выбрана сводная таблица.

enter image description here

Теперь, когда вы измените ваши данные, таблица будет автоматически пересортирована по мере вашего продвижения.

enter image description here

0 голосов
/ 29 июня 2011

Ганс, добро пожаловать в ТАК. Вы не указали какую версию Excel в своих тегах, но вот некоторые решения для Excel 2007.

Возможно (и полезно!) Сделать это без VBA. Вас может заинтересовать это решение Microsoft .

Я бы порекомендовал вам выбрать диапазон сводной таблицы с итогами, исключить заголовок и общий итог, а затем перейти на вкладку «Данные» и выбрать «Сортировка Z-> A». Это позволит отсортировать итоги в порядке убывания (и, конечно, изменить заголовки влево).

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

...