
Diagrammy_v_Excel_Dzhon_Uokenbakh_2003
.pdfПроверка вводимкйх з н Ш | й ( Ш | |
|
|
|
т^5>««трьи| Сообщение для ввода |
Сообщение об oujt^Ke | |
||
Условие прове|ЖИ - |
|
|
|
1ип длнных: |
~3 |
|
|
IСписок |
17 Игнорировать пустые £м«й<и |
||
Значение: |
"3 |
R |
QiHcoK допустимыэе зндче«*1Й |
|ие*;ду |
|
|
|
|
|
|
|
||Зсточник; |
|
|
|
|-=СМЕЩ($А2;0;0;СЧЁТЗ($А:$А)-1;1) |
3 |
Г* gacnpocipateiTb изненения на другие ячейки с ген же условиеи
OifHCTKTbBce |
Рис. 7.9. Определение диапазона дат, выво димых в раскрывающемся списке
Когда параметры диалогового окна Проверка вводимых значений установлены, дату можно выбрать в раскрывающемся списке, который появляется при активизации ячейки С2. В исходном состоянии установлена первая дата диаграммы. Счетчик управляет количеством точек данных, выводимых диаграммой.
Обратите внимание: в п. 5 в поле Источник вводится формула, автоматически на страивающая диапазон при вводе новых данных или удалении существующих.
Вывод последних п точек
Рассмотрим еще один тип интерактивной диафаммы, выводящей последние п ячеек столбца. Диафамма, показанная на рис. 7.10, выводит объемы продаж за последние меся цы. Количество выводимых месяцев хранится в ячейке с именем КолМес (ячейка F1).
Создание диаграммы
Диафамма представляет собой стандартный фафик, выводящий данные столбцов А:С. Подписи оси категорий хранятся в двух столбцах: А и В.
Определение имен
Ячейке F1 присвоено имя КолМес. В рабочей книге определены две именованные формулы. Формула Даты определена как
= С М Е Щ ( Л и с т 1 ! $ А $ 2 ; С Ч Ё Т З ( Л и с т 1 ! $ В : $ В ) - К о л М е с - 1 ; О ; К о л М е с ; 2 )
Формула Продажи имеет следующий вид:
= С М Е Щ ( Л и с т 1 ! $ С $ 2 ; С Ч Ё Т З ( Л и с т 1 ! $ С : $ С ) - К о л М е с - 1 ; О ; К о л М е с ; 1 )
Заголовок диаграммы связан с ячейкой Е6, содержащей формулу
= "Продажи по месяцам (последние " &КолМес&:" месяцев) "
В этой формуле имя ячейки КолМес используется для того, чтобы в заголовке диафаммы всегда выводилось правильное количество месяцев.
После создания имен две именованные формулы используются для определения диа пазонов подписей категорий и значений ряда диафаммы. (Определение диапазонов ряда
Глава 7. Интерактивные диаграммы |
221 |

диафаммы с помощью именованных формул рассматривалось выше в главе,) Значение ячейки F1 управляет количеством точек, выводимых диафаммой. При добавлении в рабо чий лист новых данных (или удалении существующих) диафамма насфаивается автомати чески благодаря функциям СЧЁТЗ, подсчитывающим количество непустых ячеек.
|£ЗР«с07_10.ки |
ШШШШШШК^^^Ш^^^^^^^^^^!^^^^^-'-"''"''. |
1 1 J |
~inixi| |
||||||||||||
|
t ^ ' l |
А |
В |
с |
D |
Е |
1 Т |
1 G 1 |
И |
1 |
1 К |
1Т1 |
|||
|
Год |
Месяц |
Продажи |
Количество яесяцев|| 6 |
| |
|
|
|
|
|
-—. |
||||
|
2 ' |
2000 Янв |
103 021 |
|
|
|
|
|
|
|
|
|
|
||
|
3 |
|
2000 Фев |
99 589 |
|
|
|
|
|
|
|
|
|
|
|
1 4 |
|
2000 Map |
99 195 |
|
|
|
|
|
|
|
|
|
|
||
1 5 |
|
2000 |
Апр |
98 540 |
|
|
|
|
|
|
|
|
|
|
|
! |
6 |
, |
2000 |
Май |
98 670 |
Продажи по месяцам (последние 6 месяцев) |
|
|
|
|
| |
||||
|
|
|
2000 |
Ню и |
99 183 |
|
|
|
|
|
|
|
|
|
|
' |
9 |
~ |
2000 |
Июл |
98 583 |
|
Продажи по месяцам (последние 6 месяцев) |
|
|
||||||
2000 |
Авг |
99 021 |
|
|
|
||||||||||
Л 10 |
|
|
|
||||||||||||
2000 |
Сен |
99 365 |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
102 DOU - |
|
|
|
|
|
|
|
|
|
|||
|
|
|
2000 |
Окт |
99 539 |
|
|
|
|
|
|
|
|
|
|
|
12 |
2000 |
Ноя |
99 899 |
101 500 • |
|
|
|
|
т. |
|
|
|
|
|
|
13. |
2000 |
Дек |
100 050 |
|
|
|
j |
^ |
" " " • — " % |
% |
|
|||
|
14 |
2001 |
Янв |
100 064 |
101 000 • |
|
|
уГ |
|
|
|
|
|
|
|
|
15 |
2001 |
Фев |
100 227 |
|
|
|
|
|
|
|
- |
|||
|
|
|
|
|
|
|
|
|
|||||||
|
16 |
2001 |
Map |
100 663 |
100 500 - |
|
|
|
|
|
|
|
|||
|
Т?" |
2001 |
Арп |
100 519 |
•^-^-^^^^.^^ |
|
|
|
|
|
|
||||
|
1R, |
2001 |
Май |
100 231 |
100 000 - |
|
|
|
|
|
|
||||
ПГ" |
2001 |
Июн |
100 407 |
|
|
|
|
|
|
|
|
|
|
||
|
20 |
2001 |
Июл |
100 735 |
99 500 • |
|
|
|
|
|
|
|
|
|
|
[21 |
|
2001 |
Авг |
100 378 |
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|||||
122" |
2001 |
Сен |
100 148 |
99 000 - |
|
|
|
|
|
|
|
|
|
||
123Г |
2001 |
Окт |
100 160 |
|
Окг |
Ноя |
Дек |
Янв |
|
Фев |
Map |
|
|||
124" |
2001 |
Ноя |
99 920 |
|
2001 |
2001 |
2001 |
2002 |
|
2002 |
2002 |
|
|||
125" |
2001 |
Дек |
100 787 |
|
|
|
|||||||||
|
|
|
|
|
|
|
|
|
|
||||||
рттТ |
2002 |
Янв |
101 526 |
|
|
|
|
|
|
|
|
|
'^ 1 |
||
|
|
|
|
|
|
И! |
...^._ |
._ |
: |
|
|||||
||Ч |
< |
• м\Лист1/ |
|
|
|
|
|
лЮ1 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
Рис. 7.10. Диаграмма выводит данные за последние месяцы; количество месяцев опре деляется значением ячейки F1
Вывод каждой /г-й точки
Предположим, столбец содержит слишком много данных и вы хотите вывести в диаграмме только каждую 10-ю точку. В этом разделе предлагается две методики соз дания приспособленной для этого диаграммы.
Использование автофильтра
Один из способов вывода каждой п-н точки диапазона состоит в использовании автофильтра совместно с формулой. Автофильтрация позволяет скрыть строки, не удовлетворяющие определенному критерию. По умолчанию диаграмма Excel не выво дит данные, расположенные в скрытых строках. Следовательно, необходимо создать формулу, возвращающую специальное значение на основе номера строки данных; за тем результат формулы используется для автофильтрации.
На рис. 7.11 показан рабочий лист с автофильтром. Ячейка В1 содержит значение, представляющее величину п. Например, если ячейка 31 содержит значение ю , то диаграмма выводит каждую 10-ю точку, т.е. значения строк 4, 14, 24 и т.д.
Столбец А содержит 365 дат, столбец В — 365 соответствующих точек данных. Столбец С содержит формулы, возвращающие значение, на основе которого принимается решение о том, будет ли скрыта строка. Во все ячейки столбца С скопирована формула
=ОСТАТ(СТРОКА О-СТРОКА($В$4) ;$В$1)
Функция ОСТАТ используется для вычисления остатка от деления (а-1)-й строки (где а — номер строки) на значение п. Для каждой п-й ячейки формула возвращает о.
222 Часть П. Построение диаграмм
O|Pic07_12.Kfs |
|
|
|
|
Ш0('<-^1^т |
||
|
|
|
|
|
|||
|
|
В |
С 1 |
0 |
ШШ^', ШЩ'ги\ |
||
2 |
n= |
19 :±i |
|
|
|
|
|
3 |
Даты |
Данные |
НовыеДаты НовыеДанные 1 |
||||
4 |
01.ЯНВ |
0 |
|
01 янв |
|
|
0 |
5 |
02.ЯНВ |
5 |
|
20.ЯНВ |
|
|
43 |
Ь |
03.ЯНВ |
7 |
|
08.фев |
|
|
105 |
7 |
04.ЯНВ |
19 |
|
27.фев |
|
|
97 |
В |
05.ЯНВ |
29 |
|
18.мар |
|
|
71 |
9 |
Об.янв |
29 |
|
Об.апр |
|
|
67 |
10 |
07.ЯНВ |
31 |
|
25.апр |
|
|
71 |
11 |
08.ЯНВ |
36 |
|
14jwiaH |
|
|
102 |
12 |
09.ЯНВ |
41 |
|
02.ИЮН |
|
|
140 |
13 |
Ю.янв |
53 |
|
21 .июн |
|
169 |
|
14 |
11.ЯНВ |
53 |
|
10;июл |
|
|
185 |
15 |
12.ЯНВ |
48 |
|
29.ИЮЛ |
|
|
135 |
16 |
13.ЯНВ |
52 |
|
17.авг |
|
|
185 |
17 |
14.ЯНВ |
44 |
|
05 .сен |
|
|
196 |
18 |
15.ЯНВ |
49 |
|
24 .сен |
|
|
232 |
19 |
16.ЯНВ |
47 |
|
13.0КТ |
|
|
250 |
20 |
17.ЯНВ |
38 |
|
01 .ноя |
|
|
167 |
21 |
18.ЯНВ |
39 |
|
20 .но я |
|
100 |
|
22 |
19.ЯНВ |
41 |
|
09 .дек |
|
#н/д |
104 |
23 |
20.ЯНВ |
43 |
|
#н/д |
|
|
|
24 |
21.ЯНВ |
48 |
|
#н/д |
|
#н/д |
1 |
25 |
22.ЯНВ |
55 |
|
#н/д |
|
#н/д |
1 |
26 |
23.ЯНВ |
50 |
|
#н/д |
|
#н/д |
1 |
27 |
24 . »iB |
58 |
|
#н/д |
|
#н/д |
1 |
28 |
25.ЯНВ |
67 |
|
*н/д |
|
*н/д |
1 |
29 |
26.ЯНВ |
65 |
|
#н/Д |
|
#н/д |
1 |
30 |
27.ЯНВ |
74 |
|
#н/д |
|
#н/д |
1 |
31 |
28.ЯНВ |
79 |
|
#н/д |
|
*н/д |
1 |
М "V" •" иКлист*/
Рис. 7.12. Использование именованных формул для вывода каждой п-й точки
Формулы массивов — довольно сложное понятие, их полное объяснение вы ходит за рамки этой книги. Однако формулы массивов можно успешно при менять и без глубокого понимания принципов их работы. Используемые в этом примере формулы массивов легко адаптировать для других наборов данных. Но при этом следует учитывать, что изменять ссылки на ячейку $А$1 нельзя. Эта ячейка используется для генерации смещений, ссылающихся на ячейки исходных диапазонов.
Создание именованных формул
Если создать диаграмму на основе данных столбцов D:E, результат будет не совсем удовлетворительным. Помимо каждого «-го значения, в конце диаграммы окажутся выведенными все пустые ячейки (#н/д).
Такой недостаток устраняется путем использования именованных формул вместо двух формул массивов. Именованные формулы идентичны формулам массивов, приведейным в предыдущем разделе. Формула НовыеДаты определена так:
=Ч(СМЕЩ(Даты;(СТРОКА(СМЕЩ(Лист1!$А$1;О;О/ЧСТРОК( Даты)/Nth))-1)*Nth;0))
Формула НовыеДанные определена следующим образом:
=Ч(СМЕЩ(Данные;(СТРОКА(СМЕЩ(Лист1!$А$1;О;О;ЧСТРОК( Данные)/Nth))-l)*Nth;0))
Именованные формулы используются в качестве диапазонов подписей категорий и значений ряда диаграммы (применение именованных формул в рядах диаграммы бо лее подробно рассмотрено выше в главе). В результате применения именованных формул используемые в диаграмме массивы состоят только из определенных значений (без неопределенных значений #н/д).
Поскольку теперь именованные формулы используются вместо формул массивов, формулы, расположенные в столбцах D:E, больше не нужны, их можно удалить. Вы можете рассматривать их как иллюстрацию принципов использования формул масси вов (или как рудимент предыдущего примера).
224 |
Часть П. Построение диаграмм |
Вывод ряда на основе активной ячейки
в диаграмме, показанной на рис. 7.13, ряд выводится на основе выполненного пользователем выделения в рабочем листе. Таблица содержит результаты опроса кли ентов по различным пунктам, а в диаграмме выводится статистика ответов на пункт, выделенный пользователем в рабочем листе. Иными словами, диаграмма выводит строку, в которой расположен указатель ячейки. При нажатии клавиши <F9> (для вы числения рабочей книги) именованная формула вычисляется и результат применяется в формуле РЯД диаграммы. В другом варианте этого примера (файл Pic07_i3a.xls) диаграмма полностью автоматизирована Q ПОМОЩЬЮ макроса VBA: при каждом изме нении выделения макрос запускается, и диаграмма автоматически обновляется (клавишу <F9> нажимать не нужно).
. _ |
|
|
В |
i |
с |
|
1 Е 1 |
f |
|
1 J |
|
|
|
А |
= ; . |
0 |
|
||||||
|
|
Резупьтшпы опроса нг |
к вам легко дозвониться |
|
|
|
|||||
|
|
|
|
|
|
||||||
|
|
60% -1 |
|
|
|
|
|
|
|
|
|
|
|
45% - |
|
|
|
|
|
40% |
^ |
^ |
|
|
|
30% - |
|
|
|
|
|
|
|
|
|
|
|
15% - |
1% |
^ |
^ |
9% |
|
|
|
|
|
|
|
0% - |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Полностью |
Согла сен |
Не знаю |
Не согласенКатегорически |
|
||||
|
1 |
|
согласен |
|
|
|
|
не согласен |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Полностью |
|
|
|
Категорически |
|
|||
1 |
2 |
Пункт опроса |
согласен |
Согласен Не знаю Не согласе^н |
не согласен |
|
|||||
3Размещение магазинов удобное |
|
12% |
14% |
21% |
21% |
|
32% |
|
|||
1 |
4 |
Время работы магазинов удобное |
|
15% |
18% |
24% |
29% |
|
14% |
|
|
1 |
5 |
Магазины хорошо содержатся |
|
9% |
11% |
32% |
31% |
|
17% |
|
|
1 |
8 |
К вам легко дозвониться |
|
1% |
5% |
9% |
40% |
|
45% |
|
|
|
7 |
Мне нравится ваш Web-сайт |
|
18% |
32% |
32% |
12% |
|
8% |
|
|
|
8 |
Служащие дружелюбны |
|
2% |
6% |
32% |
43% |
|
17% |
|
|
|
9 |
Служащие внимательны к посетителям |
|
3% |
4% |
21% |
39% |
|
33% |
|
|
|
10 Служащие компетентны |
|
1% |
9% |
18% |
33% |
|
39% |
|
||
|
11 Цены умеренные |
|
38% |
24% |
21% |
12% |
|
5% |
|
||
|
12 Богатый выбор товаров |
|
16% |
19% |
32% |
21% |
|
12% |
|
||
|
13 Телевизионная реклама качественная |
|
5% |
9% |
32% |
38% |
|
16% |
±га |
||
|м |
-< • иКЛист1/Лист2/ |
, |
|
' |
JjLl,™ |
|
1 |
|
|
Рис. 7.13. При нажатии клавиши <F9> диаграмма выводит строку, в которой расположен указатель ячейки
Создание диаграммы
Диаграмма, показанная на рис. 7.13, представляет собой стандартную гистограмму, выводящую данные строк 2 и 3. Высота строки 1 увеличена, чтобы в ней могла помес титься диаграмма. В рабочей книге используется закрепление областей, чтобы диа грамма и заголовок таблицы были видны всегда. Для их закрепления нужно выделить ячейку G3 и выбрать команду Окно'=>Закрепить области.
Определение имен
в диаграмме, показанной на рис. 7.13, используются две именованные форму лы. В отличие от именованных формул, встречавшихся нам прежде, здесь исполь зуются смешанные ссылки на ячейки: ссылка на столбец абсолютная, а на стро ку — относительная. В результате применения смешанных ссылок формула вы числяется по-разному, в зависимости от того, какая ячейка активна в момент вычисления рабочего листа.
Глава 7. Интерактивные диаграммы |
225 |
Фактически расположение активной ячейки влияет на именованную формулу при ее создании. В приведенных ниже именованных формулах предполагается, что при их создании активной была ячейка A3.
Формула ЗаголДиагр определена как
=СМЕЩ($АЗ;0;0)
Формула ДанныеДиагр имеет следующий вид: =СМЕЩ{$АЗ;0;1;1;5)
Как и в предыдущих примерах, именованные формулы используются в формуле РЯД диаграммы. Формула РЯД имеет следующий вид:
=РЯД(Pic07 _ 13 . xls!ЗаголДиагр;Лист1! $ В $ 2: $ F $ 2; Pic07 _ 13 . xls!ДанныеДиагр;!)
Обратите внимание: для второго аргумента (подписи оси категорий) именованная фор мула не нужна. Подписи категорий не изменяются. Когда рабочий лист вычисляется, име нованные формулы обновляются с учетом того, какая ячейка в данный момент активна.
Если указатель ячейки находится вне диапазона данных, диаграмма выводит пус той ряд.
Использование макроса
Альтернативная версия примера, показанного на рис. 7.13, находится в файле Pic07_l3a.xls. В ней для принудительного вычисления рабочего листа при измене нии выделения используется макрос VBA. В результате применения макроса устраня ется необходимость нажимать клавишу <F9> при каждом изменении выделения.
Для добавления макроса выполните следующее.
1.Выведите на экран панель управления Visual Basic и щелкните на кнопке Редактор Visual Basic. Активизируется диалоговое окно редактора VBA с пустым модулем кода.
2.Введите следующий код:
P r i v a t e |
Sub Worksheet _ SelectionChange _ |
||
|
(ByVal |
T a r g e t |
As Range) |
If A c t i v e C e l l . R o w > 2 _ |
|
||
And |
A c t i v e C e l l . R o w < |
17 Then |
_ |
A c t i v e S h e e t . C a l c u l a t e |
|
|
|
End Sub |
|
|
|
3« Нажав клавиши <AltH-Fll>, вернитесь в Excel.
Приведенный выше макрос VBA запускается при каждом изменении выделения диапазона в рабочем листе. Код VBA проверяет расположение активной ячейки. Если активная ячейка находится в строке с номером между 2 и 17, то оператор ActiveSheet .Calculate запускает вычисление рабочего листа.
Дополнительные примеры макросов, запускаемых при наступлении определенных событий, рассматриваются в главе 16, "Использование VBA в диаграммах".
Определение ряда на основе активной ячейки
Как и в предыдущем примере, в диаграмме, показанной на рис. 7.14, используется активная ячейка. Однако теперь она определяет начало ряда. Выводимые рядом дан-
2 2 6 |
Часть П. Построение диаграмм |
|DiPic07_15.Kls |
|
|
|
|
^^^тмм^^шш]F 1 - 0 ITJ |
|||
1 |
. А |
в |
С |
': D |
Е |
|||
Месяц |
Продукт А |
Продукт Б |
Продукт В |
|
|
|
||
2 |
Янв |
1 450 |
569 |
|
983 |
|
|
|
p™.Фев |
1532 |
578 |
|
1 200 |
|
|
|
|
4 |
Map |
1636 |
691 |
|
1200 |
|
|
|
5 |
Апр |
1 719 |
699 |
|
1 188 |
|
|
|
8 |
Май |
1546 |
601 |
|
904 |
|
|
|
7 |
Июн |
1 435 |
543 |
|
912 |
|
|
|
8 |
Июл |
1 654 |
784 |
|
1056 |
|
|
|
9 |
Авг |
1 854 |
1035 |
|
1 004 |
|
|
|
10 |
Сен |
1 891 |
1 182 |
889 |
|
|
|
|
11 |
Окт |
1 900 |
1 332 |
809 |
|
|
|
|
12 |
Ноя |
1909 |
1 347 |
|
1042 |
|
|
|
13 Дек |
2 043 |
1 540 |
905 |
|
|
|
||
14 |
|
|
|
|
|
|
|
|
PE |
|
Объемы продаж продуктов по месяцам |
|
|||||
2 500 л |
|
|
|
|
|
|
|
|
П7" |
|
|
|
|
|
|
|
|
Гш" |
2 000 - |
|
|
|
|
ф |
ф |
:—щ.м'"''''^ |
ром |
|
|
|
|
|
|
|
|
[Ш |
1500- |
|
|
|
|
|
|
|
| 2 2 l |
|
|
|
|
|
|
|
|
|
|
|
|
|
^ ^ |
- |
^ - ^ |
|
[23] |
|
|
|
|
|
|||
:Г24| |
1000 - |
|
|
|
|
|
|
|
| 2 5 | |
|
|
|
|
|
|
|
|
J26 |
|
|
|
|
|
|
|
|
27500 -
:1 291
ГзТ] |
0 - |
|
|
|
Янв |
Фев Map Апр Май Июн Июл Авг |
Сен Окт |
Ноя Дек |
|
1зз1 |
|
—•—Продукт А -тк—Продукт Б —•-- Продукт В |
'гЦ |
|
|
>^~1н^Лис пГ |
JiJ |
1 |
|
| н < |
±1П| |
Рис. 7.75. Выводимые диаграммой ряды находятся под управлением трех флажков
Определение имен
в примере используются имена, перечисленные в табл. 7.1. Обратите внимание: функции используются только в формулах РЯДА, РЯДБ И РЯДВ. Все остальные форму лы просто ссылаются на ячейку или диапазон. Пустой диапазон Е2:Е13 используется, когда ни один ряд не выбран.
Таблица 7 . 1 . Именованные формулы
Имя |
Формула |
|
Месяцы |
=Лист1!$А$2:$А$13 |
|
ПродуктА |
=Лист1!$В$2:$В$13 |
|
ПродуктБ |
=Лист1!$С$2;$С$13 |
|
ПродуктВ |
=Лист1!$0 |
$2:$П$13 |
ПустойДиап |
=Лист1!$Е$2:$Е$13 |
|
ПоказПродА |
=Лист1!$С$4 |
|
ПоказПродБ |
=Лист1!$G$5 |
|
ПоказПродВ |
=Лист1!$С$б |
|
РядА |
=ЕСЛИ{ПоказПродА;ПродуктА;ПустойДиап) |
|
РядБ |
=ЕСЛИ(ПоказПродБ;ПродуктБ;ПустойДиап) |
|
РядВ |
=ЕСЛИ(ПоказПродВ;ПродуктВ;ПустойДиап) |
|
Глава 7. Интерактивные диаграммы |
229 |