Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/12: Рейтинг темы: голосов - 12, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 17

Как построить нестандартную диаграмму из скрипта?

27.05.2010, 11:56. Показов 2495. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть табличка:

Дата Цена
Февраль-04 45000
Февраль-04 45000
Март-04 45000
Март-04 5400
Март-04 45000
Февраль-04 45000
Февраль-04 45000
Март-04 45000
Март-04 13500

нужен график, чтоб по оси Х были месяца, а по Y соответственно цена, а значения должны быть суммы по месяцам.
Стандартный чарт не позволяет вроде построить таким образом...
в скрипте создать 2 массива и скинуть в них данные не проблема(в один - месяцы, в другой суммы по месяцам), но как исходя из данных массива построить диаграмму, ведь Эксель позволяет вроде строить их только по ячейкам?
а временно создавать ряды по данным этих массивов тоже не хочется, хотя как вариант.

и еще: по оси Y макс. значение должна быть опред. цифра, которая имеется. Реально задать максимум по по оси Y ??

может кто-то имееет опыт построения графиков по массивам?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
27.05.2010, 11:56
Ответы с готовыми решениями:

Как построить фазовую диаграмму в Excel
Скажите пожалуйста как построить фазовую диаграмму в excel?

Как построить диаграмму по данным с другого листа
Задача: построить диаграмму по данным с другого листа. Количество данных случайно, т.е. диапазон меняет значение. В примере взято...

Как построить диаграмму
Мне надо составить такую же диаграмму... только с другими значениями. У меня 2003 офис. я ума не приложу как это делать вчера всё...

7
 Аватар для SlavaRus
1124 / 237 / 37
Регистрация: 15.03.2010
Сообщений: 728
27.05.2010, 12:50
Может быть сделать цену по основной оси, а сумму по вспомогательной?
0
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 17
30.05.2010, 13:34  [ТС]
Спасибо конечно за ответ и за желание помочь...
Но ответ бесполезный...
здесь так-то форум по VBA и хотелось бы услышать конкретные предложения, увидеть какой-то код, если это есть, а не совет на какой оси что расположить - у меня же написано четко про оси
наверняка кто-то же строил график скриптом...
0
 Аватар для SlavaRus
1124 / 237 / 37
Регистрация: 15.03.2010
Сообщений: 728
30.05.2010, 18:36
Да не сердись ты так :-). Выдалось немного свободного времени и
я построил график. Макрорекордером записал, а потом немного отредактировал код. Вот что получилось:
Sub Макрос2()
Dim Ch1(), ch2(), Labx() As String
Dim a As String
Dim j As Integer

ReDim Ch1(I)
ReDim ch2(I)
ReDim Labx(I)
x = 0
step = 3.14 / I
For j = 0 To I
Ch1(j) = Replace(CStr(Round((Sin(x)), 2)), ',', '.')
ch2(j) = j * j * j
Labx(j) = CStr(j)
x = x + step
Next

Charts.Add
Charts(Charts.Count).Name = 'Проба'
With Charts('Проба')
.HasTitle = True
.ChartTitle.Text = 'Проба'
.ChartType = xlLineMarkers
.SeriesCollection(1).XValues = Labx()
.SeriesCollection(1).Values = '={' & Join(Ch1(), ';') & '}'
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = 'Значения Х'
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = 'Значения У1'
.SeriesCollection.NewSeries
.SeriesCollection(2).Values = '={' & Join(ch2(), ';') & '}'
.SeriesCollection(2).AxisGroup = 2
.Axes(xlValue, xlSecondary).HasTitle = True
.Axes(xlValue, xlSecondary).AxisTitle.Characters.Text = 'Значкния У2'
.Legend.Position = xlBottom
' .Location Where:=xlLocationAsObject, Name:='Лист1'
End With

End Sub

Так для идеи построил, может кто подскажет как лучше.
Ведь на то и форум, что бы было о чем потрещать.
Удачи!
0
 Аватар для SlavaRus
1124 / 237 / 37
Регистрация: 15.03.2010
Сообщений: 728
30.05.2010, 18:37
Еще Const I=20 забыл написать ;-)
0
 Аватар для SlavaRus
1124 / 237 / 37
Регистрация: 15.03.2010
Сообщений: 728
31.05.2010, 09:26
Максимум по оси можно задать так:
with ...
...
.Axes(xlValue, xlSecondary).MaximumScale = 8500
end with
в данном примере для вспомогательной оси.
Это то что тебе было нужно?
0
0 / 0 / 0
Регистрация: 18.05.2010
Сообщений: 17
31.05.2010, 15:45  [ТС]
Слушай, РИАЛ, СУПЕР!!! ))
ТЫСЯЧУ извинений ))

я думаю этот код не одному мне пригодится, потому что в форуме я много видел просьб поделиться кодом как строить график из скрипта.
ты еще и из массивов сделал, СУПЕР!!!

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

СПАСИБ огромный!!!!!!!!!!
0
 Аватар для SlavaRus
1124 / 237 / 37
Регистрация: 15.03.2010
Сообщений: 728
31.05.2010, 16:03
Ради бога лишь бы в радость было
Я вчера из скрипта строил график в первый раз в жизни, т.к. мне это никогда не было нужно.С передачей массива парился минут 15. Кстати для информации, если массив из Integer его преобразовывать не нужно, его ексель так съедает. Удачи!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.05.2010, 16:03
Помогаю со студенческими работами здесь

Как построить диаграмму
Здравствуйте! Помогите создать диаграмму. Вроде по гуглу нужно, делать так: http://www.sistemair.ru/dok/mathcad/text/index7-4.html Но...

Как построить er диаграмму
есть таблица во вложенном файле

Как построить векторную диаграмму?
Здравствуйте! Проверьте и общий ход моих рассуждений, пожалуйста В задаче для электрической цепи (см.рис) даны значения U=600В, r1=10...

как построить данную диаграмму
необходимо построить вот такую диаграмму

как построить диаграмму UML?
к такому коду !!! или хотя бы любую информацию об этой диаграмме !!пожалуйста #include <cstring> #include <iostream> ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru