Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.07.2010, 14:46   #1
O_H
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 68
По умолчанию По диапазону с датами построить график по месяцам, как?

Столбец А - значения, столбец В - даты...
Формулу ряда данных пытался в лоб написать через СУММЕСЛИ:
Код:
=СУММЕСЛИ(B1:B365;критерий?;A1:A365)
Для критерия вывел в столбце С порядковый номер месяца, теперь формула стала выглядеть так:
Код:
=СУММЕСЛИ(B1:B365;МЕСЯЦ(B1)=C1;A1:A365)
Засомневался в правильности критерия, заполнил в столбце D 12 ячеек порядковыми номерами месяцев:
Код:
=СУММЕСЛИ(B1:B365;МЕСЯЦ(B1)=D1:D12;A1:A365)
Но СУММЕСЛИ вседа возвращает массив из 12 нулей. Где косяк?
O_H вне форума Ответить с цитированием
Старый 09.07.2010, 14:51   #2
Volodshan
Форумчанин
 
Регистрация: 20.05.2008
Сообщений: 241
По умолчанию

Вариант - ч/з мастера сводных таблиц - сводная диаграмма, с группировкой дат по месяцам.
Volodshan вне форума Ответить с цитированием
Старый 09.07.2010, 15:33   #3
O_H
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 68
По умолчанию

Нужно формулами...
O_H вне форума Ответить с цитированием
Старый 09.07.2010, 16:26   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

=СУММ((МЕСЯЦ(B$1:B$365)=D1)*A$1:A$3 65)
в D1 = 1, формула массива, тянем вниз на 11 ячеек (в D2 = 2, D3 = 3 ...)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 09.07.2010, 17:27   #5
O_H
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 68
По умолчанию

Работает! Спасибо!
А у меня в чём ошибки были?
=СУММЕСЛИ(B1:B365;МЕСЯЦ(B1:B365)=D1 ;A1:A365) - вернула массив нулей
=СУММЕСЛИ(МЕСЯЦ(B1:B365);1;A1:A365) - ошибка в формуле
Блин!!! Никогда я не научусь сам использовать формулы массива!!!
O_H вне форума Ответить с цитированием
Старый 09.07.2010, 17:28   #6
DV68
Форумчанин
 
Регистрация: 05.08.2009
Сообщений: 465
По умолчанию

Цитата:
Сообщение от O_H Посмотреть сообщение
Засомневался в правильности критерия, заполнил в столбце D 12 ячеек порядковыми номерами месяцев:
Код:
=СУММЕСЛИ(B1:B365;МЕСЯЦ(B1)=D1:D12;A1:A365)
Но СУММЕСЛИ вседа возвращает массив из 12 нулей. Где косяк?
Косяк в недопонимании формулы. Почитайте в справке все хорошо написано.
2-я приведенная формула должна выглядеть так:
Код:
=СУММЕСЛИ(C$1:C$365;1;A$1:A$365)
а третья, выводящая массив, так:
Код:
=СУММЕСЛИ(C1:C365;СТРОКА(1:12);A1:A365)
Если не нужен допстолбец С, тогда Игорь привел формулу массива.
"Все следует делать настолько простым, насколько это возможно, но не проще." Альберт Эйнштейн
DV68 вне форума Ответить с цитированием
Старый 09.07.2010, 18:48   #7
O_H
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 68
По умолчанию

Цитата:
Косяк в недопонимании формулы. Почитайте в справке все хорошо написано.
Да у меня 2 книги Уокенбаха на компе вторую неделю открытыми висят! Смотришь его примеры - всё понятно, начинаешь что-то своё делать - пипец...
Вот и тут...
=СУММЕСЛИ(МЕСЯЦ(B1:B365);1;A1:A365) - нельзя, что-ли, первым аргументом формулу указывать?
=СУММЕСЛИ(B1:B365;МЕСЯЦ(B1)=D1:D12; A1:A365) - критерий, в данном случае, не должен возвращать логическое значение?
Так, что-ли?
_________________
А как результат использовать для построения графика? Если этой формуле присвоить имя и указать его как значение ряда, то ничего не выходит. Ряду нужно сослаться на какой-то диапазон, а где он тут?

Последний раз редактировалось O_H; 09.07.2010 в 19:01.
O_H вне форума Ответить с цитированием
Старый 09.07.2010, 19:17   #8
Volodshan
Форумчанин
 
Регистрация: 20.05.2008
Сообщений: 241
По умолчанию

Цитата:
Сообщение от O_H Посмотреть сообщение
Да у меня 2 книги Уокенбаха на компе вторую неделю открытыми висят!..
_________________
А как результат использовать для построения графика?...Ряду нужно сослаться на какой-то диапазон, а где он тут?
Вы очень напористы, однако, невнимательны: IgorGo писал "в D1 = 1, формула массива, тянем вниз на 11 ячеек (в D2 = 2, D3 = 3 ...)" - следовательно вот вам и даипазон с числами месяцев и данными на каждый из них - 12х2=24 ячейки, плюс 2 - для "шапки" - месяц и сумма...
Volodshan вне форума Ответить с цитированием
Старый 09.07.2010, 20:09   #9
O_H
Пользователь
 
Регистрация: 06.07.2010
Сообщений: 68
По умолчанию

Как всегда, - половина вопроса осталась в голове, поэтому он получился невнятным. Дело в том, что это всё делается программно. В случае "график по дням месяца" проблем нет - все нужные диапазоны есть в таблице, а эти, вычисленные значения придётся как-то каждый раз предварительно вставлять куда-то в пустое место?
O_H вне форума Ответить с цитированием
Старый 09.07.2010, 20:21   #10
Volodshan
Форумчанин
 
Регистрация: 20.05.2008
Сообщений: 241
По умолчанию

Цитата:
Сообщение от O_H Посмотреть сообщение
Как всегда, - половина вопроса осталась в голове, поэтому...
Если "как всегда", то это - диагноз... Однако, подождем вторую половину, чтобы выяснить что, как, почему и зачем "всё делается программно"...
Volodshan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как построить график Nijaz Общие вопросы Delphi 5 09.06.2014 11:25
построить график. с++ Yokka C++ Builder 1 13.05.2010 18:23
посоветуйте как правильно построить график vakyla Общие вопросы Delphi 11 31.03.2009 08:12
Как построить 3-х мерный график? Mikhail Bakurov Общие вопросы Delphi 3 01.12.2008 05:37
как построить график в паскале? Vitas1234 Паскаль, Turbo Pascal, PascalABC.NET 1 11.06.2008 16:53