Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Точечная диаграмма по объектам с линией среднего - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Точечная диаграмма по объектам с линией среднего (Графики и диаграммы/Charts)
Точечная диаграмма по объектам с линией среднего
Rioran Дата: Среда, 08.07.2015, 15:52 | Сообщение № 1
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
Всем привет и хорошего настроения!

Помогите, пожалуйста, с добавлением линии среднего/тренда. Во вложении есть график, для которого у меня возникает затруднение. Каждая точка графика прописывается отдельно (программно). При попытке построить линию - Ексель предлагает сформировать её в рамках одного из объектов вместо всего набора объектов.

Подскажите, что нужно сделать или как изменить исходные данные для получения точечной диаграммы по объектам с линией среднего?

P.S. во вложении также две мои кнопки. Позволяют построить диаграмму по отфильтрованным значениям, т.е. скрытые строки таблицы игнорируются. Желающие могут поиграться / воспользоваться.
К сообщению приложен файл: Rio_Chart_Q.xlsb (23.7 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
СообщениеВсем привет и хорошего настроения!

Помогите, пожалуйста, с добавлением линии среднего/тренда. Во вложении есть график, для которого у меня возникает затруднение. Каждая точка графика прописывается отдельно (программно). При попытке построить линию - Ексель предлагает сформировать её в рамках одного из объектов вместо всего набора объектов.

Подскажите, что нужно сделать или как изменить исходные данные для получения точечной диаграммы по объектам с линией среднего?

P.S. во вложении также две мои кнопки. Позволяют построить диаграмму по отфильтрованным значениям, т.е. скрытые строки таблицы игнорируются. Желающие могут поиграться / воспользоваться.

Автор - Rioran
Дата добавления - 08.07.2015 в 15:52
_Boroda_ Дата: Среда, 08.07.2015, 16:10 | Сообщение № 2
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Роман, у тебя ошибка в макросе - вот здесь
[vba]
Код
[Data[Object]].Cells(j, 1).Value
[/vba]
и еще в паре строк ниже нужно не j, а i


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеРоман, у тебя ошибка в макросе - вот здесь
[vba]
Код
[Data[Object]].Cells(j, 1).Value
[/vba]
и еще в паре строк ниже нужно не j, а i

Автор - _Boroda_
Дата добавления - 08.07.2015 в 16:10
Rioran Дата: Среда, 08.07.2015, 16:22 | Сообщение № 3
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, благодарю, действительно там должны быть i.

Для демонстрации вопроса взял устаревшую версию программы, в действующем механизме это было исправлено.

Перевыкладываю файл с исправленным кодом. Плюс сам код, кому интересно. Может, натолкнёт на мысль, КАК я формирую график:

К сообщению приложен файл: Rio_Chart_Q2.xlsb (23.7 Kb)


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщение_Boroda_, благодарю, действительно там должны быть i.

Для демонстрации вопроса взял устаревшую версию программы, в действующем механизме это было исправлено.

Перевыкладываю файл с исправленным кодом. Плюс сам код, кому интересно. Может, натолкнёт на мысль, КАК я формирую график:


Автор - Rioran
Дата добавления - 08.07.2015 в 16:22
_Boroda_ Дата: Среда, 08.07.2015, 16:36 | Сообщение № 4
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
А зачем ты именно так формируешь? у тебя же куча рядов получается.
Вот такой код запусти и посмотри, что получится ("=Chart_List!$D$30:$D$54" в [Data[Object]] сам потом переделай)
[vba]
Код
Sub Fill_Chart()
      Call Clear_Chart
      Dim Pts&, i&, j&
      With ThisWorkbook.Worksheets("Chart_List").ChartObjects("Rio_Chart").Chart
          .SeriesCollection.NewSeries
          .FullSeriesCollection(1).XValues = "=Chart_List!$D$30:$D$54"
          .FullSeriesCollection(1).Values = "=Chart_List!$C$30:$C$54"
          .FullSeriesCollection(1).Trendlines.Add
      End With
End Sub
[/vba]
Здесь один ряд и по нему можно построить тренд. Причем, ряд сразу целиковый, по всем значениям таблицы - все равно диаграммы не показывают скрытые ячейки. Если нужно по каждой группе свой ряд, то вот это уже можно в цикл засунуть.
Если очень нужна разная раскраска точек, то циклом покрась каждую.

Или еще вариант - свои точки рисуешь так, как и рисовал, затем поверх них рисуешь (с помощью моего кода) еще один ряд, красишь его в бесцветный цвет и строишь по нему тренд.

Кстати, в 2010 у меня твой код не работает.
Ругается на строку
[vba]
Код
Pts = .FullSeriesCollection.Count
[/vba]
К сообщению приложен файл: Rio_Chart_Q_1.xlsb (23.6 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
СообщениеА зачем ты именно так формируешь? у тебя же куча рядов получается.
Вот такой код запусти и посмотри, что получится ("=Chart_List!$D$30:$D$54" в [Data[Object]] сам потом переделай)
[vba]
Код
Sub Fill_Chart()
      Call Clear_Chart
      Dim Pts&, i&, j&
      With ThisWorkbook.Worksheets("Chart_List").ChartObjects("Rio_Chart").Chart
          .SeriesCollection.NewSeries
          .FullSeriesCollection(1).XValues = "=Chart_List!$D$30:$D$54"
          .FullSeriesCollection(1).Values = "=Chart_List!$C$30:$C$54"
          .FullSeriesCollection(1).Trendlines.Add
      End With
End Sub
[/vba]
Здесь один ряд и по нему можно построить тренд. Причем, ряд сразу целиковый, по всем значениям таблицы - все равно диаграммы не показывают скрытые ячейки. Если нужно по каждой группе свой ряд, то вот это уже можно в цикл засунуть.
Если очень нужна разная раскраска точек, то циклом покрась каждую.

Или еще вариант - свои точки рисуешь так, как и рисовал, затем поверх них рисуешь (с помощью моего кода) еще один ряд, красишь его в бесцветный цвет и строишь по нему тренд.

Кстати, в 2010 у меня твой код не работает.
Ругается на строку
[vba]
Код
Pts = .FullSeriesCollection.Count
[/vba]

Автор - _Boroda_
Дата добавления - 08.07.2015 в 16:36
Rioran Дата: Среда, 08.07.2015, 17:59 | Сообщение № 5
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, спасибо. С линией тренда всё довольно просто.

[vba]
Код
Pts = .FullSeriesCollection.Count
[/vba]
Удали слово Full из строки. Работает? На 2013 и этот вариант работает. Я кальку брал с макрорекодера, он через Full сделал.

[vba]
Код
Pts = .SeriesCollection.Count
[/vba]

А зачем ты именно так формируешь?

Это позволяет сохранить связь с именем объекта. Название теряется - а его хотелось бы видеть, наводя мышь на точку. Я попробовал в твоё первое решение добавить обозначения объектов, но тогда при большом количестве объектов получается каша. Попробую завтра как ты сказал - с невидимками поработать.

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

UPDATE_1: Получил линию среднего через добавление отдельного ряда через две точки, по которым строю линию тренда. По оси Х точки соответствуют минимальному и максимальному Х среди просматриваемых значений. По оси У точки занимают расчитаное положение. Пока получается слишком программно и громоздко.


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279


Сообщение отредактировал Rioran - Среда, 08.07.2015, 18:19
 
Ответить
Сообщение_Boroda_, спасибо. С линией тренда всё довольно просто.

[vba]
Код
Pts = .FullSeriesCollection.Count
[/vba]
Удали слово Full из строки. Работает? На 2013 и этот вариант работает. Я кальку брал с макрорекодера, он через Full сделал.

[vba]
Код
Pts = .SeriesCollection.Count
[/vba]

А зачем ты именно так формируешь?

Это позволяет сохранить связь с именем объекта. Название теряется - а его хотелось бы видеть, наводя мышь на точку. Я попробовал в твоё первое решение добавить обозначения объектов, но тогда при большом количестве объектов получается каша. Попробую завтра как ты сказал - с невидимками поработать.

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

UPDATE_1: Получил линию среднего через добавление отдельного ряда через две точки, по которым строю линию тренда. По оси Х точки соответствуют минимальному и максимальному Х среди просматриваемых значений. По оси У точки занимают расчитаное положение. Пока получается слишком программно и громоздко.

Автор - Rioran
Дата добавления - 08.07.2015 в 17:59
_Boroda_ Дата: Среда, 08.07.2015, 22:07 | Сообщение № 6
Группа: Модераторы
Ранг: Местный житель
Сообщений: 16675
Репутация: 6481 ±
Замечаний: 0% ±

2003; 2007; 2010; 2013 RUS
Удали слово Full из строки. Работает?

У меня-то и так работало. Это я для тебя написал, чтобы ты, не поправив, не дал бы кому-нибудь с 2010-м поиграться.
добавить обозначения объектов
- это ты что так обзываешь, подписи? Если их, то да, согласен, бардак получается.
А со средним пока непонятно
Так тебе среднее нужно или тренд?
Всё, понял, ты хочешь не тренд, а строго горизонтальную линию, по вертикали равную среднему значению по видимым ячейкам поля Val.
А, ну вот, так и есть.

В общем, файл _1 - с рядом-невидимкой и линией тренда, а файл _3 - с двумя точками-невидимками и линией между ними.
К сообщению приложен файл: Rio_Chart_Q2_1.xlsb (24.0 Kb) · Rio_Chart_Q2_3.xlsb (25.7 Kb)


Скажи мне, кудесник, любимец ба’гов...
Платная помощь:
Boroda_Excel@mail.ru
Яндекс-деньги: 41001632713405 | Webmoney: R289877159277; Z102172301748; E177867141995
 
Ответить
Сообщение
Удали слово Full из строки. Работает?

У меня-то и так работало. Это я для тебя написал, чтобы ты, не поправив, не дал бы кому-нибудь с 2010-м поиграться.
добавить обозначения объектов
- это ты что так обзываешь, подписи? Если их, то да, согласен, бардак получается.
А со средним пока непонятно
Так тебе среднее нужно или тренд?
Всё, понял, ты хочешь не тренд, а строго горизонтальную линию, по вертикали равную среднему значению по видимым ячейкам поля Val.
А, ну вот, так и есть.

В общем, файл _1 - с рядом-невидимкой и линией тренда, а файл _3 - с двумя точками-невидимками и линией между ними.

Автор - _Boroda_
Дата добавления - 08.07.2015 в 22:07
Rioran Дата: Четверг, 09.07.2015, 12:01 | Сообщение № 7
Группа: Авторы
Ранг: Ветеран
Сообщений: 903
Репутация: 290 ±
Замечаний: 0% ±

Excel 2013
_Boroda_, гранд мерси с занесением благодарности в карму =)

Кстати, кому интересно: заметил, что можно задавать диапазоны значений для линии тренда (среднего) через запись:

Код
={-8,89;12,42}


Роман, Москва, voronov_rv@mail.ru
Яндекс-Деньги: 41001312674279
 
Ответить
Сообщение_Boroda_, гранд мерси с занесением благодарности в карму =)

Кстати, кому интересно: заметил, что можно задавать диапазоны значений для линии тренда (среднего) через запись:

Код
={-8,89;12,42}

Автор - Rioran
Дата добавления - 09.07.2015 в 12:01
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Точечная диаграмма по объектам с линией среднего (Графики и диаграммы/Charts)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!