Перестроение диаграммы в Excel при изменении названия в шапке
Как можно сделать так, что при изменении названия в шапке диаграммы, она перестраивалась? Например у меня есть таблица с результатами за год, мне нужно чтобы при изменении года в названии диаграммы, она перестраивалась соответственно таблице?
Другими словами, можно ли как то привязать название диаграммы к таблице?
Ответы (2 шт):
Можно, например, так. Название диаграммы ввести в виде формулы как ссылку на ячейку (выделить название, кликнуть в строку формул, там ввести = и кликнуть на ячейку листа) - см. скриншот ниже:

Ячейка нам нужна, чтобы обработать событие изменения ячейки.
В обработчике события Worksheet_Change обязательно в модуле листа пишем что-то вроде:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$D$1" Then
Dim diag As Chart, tabl As ListObject
Set diag = Me.ChartObjects(1).Chart
Set tabl = Me.ListObjects(1)
m = Application.Match(Trim(Target.Value2), tabl.HeaderRowRange, 0)
If IsNumeric(m) Then
diag.SetSourceData Source:=tabl.ListColumns(m).DataBodyRange
End If
End If
End Sub
Теперь, изменяя значение года в ячейке D1, мы получаем синхронное изменение заголовка таблицы, а также изменение диапазона данных для ряда диаграммы.
Но, на мой взгляд, это довольно громоздко. Проще менять год, например, по двойному клику на шапке таблицы - в какой колонке клик произошел, тот год и выводить на диаграмме
На листе
В D1 - выпадающий список с годами (Данные-Проверка данных-Проверка данных-Список, Источник - диапазон из шапки таблицы).
В D2 вписать формулу (и протянуть вниз):
=ГПР($D$1;$A$1:$B$13;СТРОКА();)
В диаграмме.
Если легенда не отображается, имя ряда можно не писать.
Выделить название диаграммы, в строке формул - =Лист1!$D$1
Гистограмма будет перестраиваться при изменении в ячейке D1. При желании доп. данные можно "накрыть" гистограммой, оставив видимой ячейку с выпадающим списком.


