Страницы: 1
RSS
Динамический диапазон для графика
 
Здравствуйте.

У меня есть файл в который каждую неделю приходят данные по продажам. Есть фиксированная строка с шапкой : (Week 1, Week 2 .... Week 52). Под будущими неделями данных нет.
Я бы хотел просто менять номер недели - чтобы диаграмма автоматически включала в себя все прошлые данные включая текущую неделю.
Умная таблица здесь не поможет - так как строка с шапкой фиксирована, а в пустых ячейках уже есть формула, чтобы извлекать данные.
Поэтому я сделал динамический диапазон. И в диспетчере имен видно, что работает он хорошо (выделяется нужная для диаграммы область)
В Диаграмма - выбрать данные я вставляю имя динамического диапазона. И первая диаграмма правильно стоится, однако не обнавляется при изменении номера недели (хотя динамический диапазон изменяется корректно).
Подскажите решение пожалуйста. Пока склоняюсь к идее интергировать новые данные в access и выводить график с помощью power query, но тогда надо все переделывать.
Пример набросал в прикрепленном файле.
Спасибо
Изменено: vikttur - 29.09.2021 11:53:14
 
Ну если дело только в создании графика, то я бы делал через VBA.
Да, макрос расположить на листе, а не в отдельном модуле (хотя... не проверял). Ну и всё остальное там интуитивно понятно.

Не претендуя на 100% оптимальность.

Код
Sub ChartsAdd()

Dim i As Integer
' Перебор по всем диаграммам на листе с последующим их удалением
For i = 1 To ActiveSheet.ChartObjects.Count
    ActiveSheet.ChartObjects(ActiveSheet.ChartObjects(i).Name).Activate
    ActiveChart.Parent.Delete
Next i

' Создаём новый график
Charts.Add
ActiveChart.ChartType = xlColumnStacked
    ActiveChart.SetSourceData Source:=Sheets("Feuil1").Range(Cells(1, 1), Cells(5, Range("A1").Value + 1))
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Feuil1"

' Настройки графика расписывать не стану... 
End Sub
 
Солидарен с tutochkin .
Вариант с изменением значения ячейки [Q5] с числом дней:
Код
Private Sub Worksheet_Change(ByVal Target As Range)
    Set Target = Intersect(Range("Q5"), Target)
    If Target Is Nothing Then Exit Sub
    Me.ChartObjects(1).Chart.SetSourceData Range("xxx"), xlRows
End Sub
 
в имена
=$B$2:INDEX($2:$2;$Q$5+1) и аналогично и их в диаграмму и все
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх