Макрос Excel для создания графиков для разных значений - PullRequest
0 голосов
/ 15 января 2020

Здравствуйте, я работаю в Excel на листе данных с ~ 25000 строк. В каждой строке есть столбец для кода продукта, даты и веса. Я хотел бы создать макрос, который генерирует график разброса весов для каждого кода продукта (дата на оси X, вес на оси Y). У меня есть данные, отсортированные по коду продукта, а также есть 4-й столбец, в котором указано, когда в строке есть новый код продукта по сравнению с предыдущим.

enter image description here

Я записал макрос, в котором я создаю один график для кода продукта, но я не уверен, как его изменить, чтобы он мог go проходить по всему листу, группировать строки с одинаковым кодом и создавать график для каждого.

Я включил скриншот своих данных. Это код для записанного макроса:

Sub Macro1()
'
' Macro1 Macro
' graph
'
' Keyboard Shortcut: Ctrl+g
'
    Range("B12:B19,D12:D19").Select
    Range("D12").Activate
    Charts.Add2
    ActiveChart.SetSourceData Source:=Range( _
        "'Cleaned Up'!$B$12:$B$19,'Cleaned Up'!$D$12:$D$19")
    ActiveChart.ChartType = xlXYScatter
    Sheets("Cleaned Up").Select
End Sub

Заранее благодарен за любую помощь!

1 Ответ

0 голосов
/ 15 января 2020

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

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

Так что я бы отформатировал необработанные данные на одном листе. Создайте сводную таблицу с вашими агрегированными значениями / настройте сводку. Затем используйте круговую разбивку.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...