Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Diagrammy_v_Excel_Dzhon_Uokenbakh_2003

.pdf
Скачиваний:
31
Добавлен:
26.03.2016
Размер:
33.34 Mб
Скачать

 

 

I

A

В

™Ре<^^'у?'"/'

D 1 в 1 F

1 g 1^7 i i ! J i i T l r l

I 1

 

Ддты Продажи ИЯДШ!1!ШД

 

 

 

 

 

 

1

ЯНВ

244

бфев

 

mi

 

i

 

3

 

2

ЯНВ

208

n.l.l'UIJ4MJJ!M^I

 

 

 

 

 

 

4

;

3

ЯНВ

209

20

 

 

 

 

\\

S

I

4 ЯНВ

189

 

 

 

 

 

 

 

В

i

5

ЯНВ

456

 

 

 

 

 

 

1 7

i

6

ЯНВ

425

 

 

 

 

^

 

 

S

7

ЯНВ

512

 

 

 

 

 

 

9

8

ЯНВ

654

1600

-

 

 

 

 

 

10

9

ЯНВ

709

1400

-

\

 

/л/\

 

 

14)

13ЯНВ

554

 

 

 

1000

 

 

 

 

11

10

ЯНВ

732

1200

 

 

 

 

 

 

1 2 ;

11

ЯНВ

823

 

 

 

 

 

 

13 i

12ЯНВ

881

 

 

 

А^^^^^^^^^Л^

 

 

Ш '

17

ЯНВ

1 023

400

-

 

 

! 15^

14

ЯНВ

509

800

 

 

 

 

 

1

16 15

ЯНВ

643

600

-

 

 

 

 

 

^7

16

ЯНВ

623

 

 

 

 

 

 

 

19 >•

1еянв

877

200

 

 

 

 

 

20 1

19

ЯНВ

911

 

 

 

 

 

 

121 ?

20

ЯНВ

1 002

 

Я

 

 

 

 

 

22;

21

ЯНВ

887

 

 

 

 

 

 

 

23;

2 2

ЯНВ

785

 

 

 

 

 

•1

^( • ыКПисП/

 

 

 

 

J j J

}

iifA

 

 

 

 

 

Puc. 7.8. Ячейка C2 содержит дату первого выводимого дня, а ячейка С4 количество выводимых дней

Формула Продажи определена следующим образом:

=СМЕЩ(Лист1!$А$2/ПОИСКПОЗ(ПервДень;Лист1!$А:$А;1)-2;1;КолДней;1)

Во втором аргументе функции СМЕЩ используется функция поискпоз. Она воз­ вращает относительную позицию элемента в диапазоне, в данном случае — позицию в столбце А даты, совпадающей с датой, хранящейся в ячейке ПервДень, Таким спосо­ бом определяется первая строка, включаемая в диаграмму.

Как и в предыдущем примере, две именованные формулы определяют диапазоны подписей категорий и значений ряда диаграммы. Использование именованных фор­ мул для определения ряда диаграммы описано выше в главе.

Добавление пользовательских элементов управления

Чтобы облегчить установку количества дней, выводимых диаграммой, в рабочий лист добавлен счетчик, связанный с ячейкой КолДней (методика добавления счетчика рассмотрена выше в главе).

Устанавливать ячейку ПервДень с помощью счетчика невозможно, поскольку счетчик управляет целыми числами, а не датами. Можно было бы воспользоваться полосой прокрутки, однако раскрывающийся список, содержащий допустимые даты, значительно удобнее. Чтобы диаграмма была более дружественной к пользователю, в ячейку С2 добавлена проверка вводимых в нее значений. В качестве упражнения вы­ полните добавление самостоятельно.

1. Выделите ячейку С2 и убедитесь, что она отформатирована на вывод даты.

2.Выберите команду Данные^^Проверка; активизируется диалоговое окно Провер­ ка вводимых значений (рис. 7,9).

3.Откройте вкладку Параметры.

4.В поле Тип данных установите значение Список.

5.В поле Источник введите =СМЕЩ($А2;0;0;СЧЁТЗ($А:$А)-1;1). Эта формула оп­ ределяет диапазон рабочего листа, содержащий допустимые даты.

6.Щелкнув на кнопке ОК, закройте диалоговое окно Проверка вводимых значений.

220

Часть П. Построение диаграмм

Проверка вводимкйх з н Ш | й ( Ш |

 

 

т^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 Часть П. Построение диаграмм

I^Pic07_ll^ls

 

-::-^'':'^:Ш<:-^Ш'Г-^^:^

ll

 

:

A ^

8-

С

l l

1

 

n-ll

lO'i

 

2

'

 

Д<1нные • Формула остатк '^

i j T " Д а м

i

4

 

01.ЯНВ

0

0

ij

14

 

11 яне

53

0

:

24

 

21.ЯНВ

48

0

L I £

 

31.ЯНВ

90

0

пт

Ю.фев

116

0

20.фев

101

0

fzr

 

02.мар

86

0

сПТ"шг12.мар

74

0

 

84

 

22.мар

67

0

ГэГ;

01 апр

64

0

|1Q4i 11 апр

60

0

 

i i 4 |

21

апр

56

0

 

124; 01 май

117

0

 

i34i 11.май

105

0

 

144) 21.май

123

0

 

154i 31.май

140

0

|l64i Ю.июн

128

0

}174| 20.ИЮН

164

0

[1841 ЗОиюн

155

0

Г194; 10 июл

185

0

[204^! 20.июл

164

0

< • н К л и с т ! /

i D i Е 1 F 1 а i Н 1 1 i J i

wmm-i:.InUII

 

к 1 L

' "и

Вывод каждой П-Й точки данных (n-10)

 

41

 

 

Вывод каждой п-й точки данных (ri=10)

250

-

 

 

 

 

 

 

 

 

200

-

 

 

 

 

 

 

 

 

150

-

 

 

 

 

 

 

 

 

100

-

 

 

 

 

 

 

 

 

50

-

 

 

 

 

 

 

 

 

 

1 I

• 1 I

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 • 1

СЮ

IV.

 

 

^

CS

т -

с о

CN

(35

 

 

CN

т -

 

 

 

ГЧ

• ^

I D

Г^

 

О

ГЧ

 

 

 

 

 

 

 

 

 

 

 

 

 

1.11

 

:

1

<^!

 

 

 

 

 

ИП1

Рис. 7.11. Диаграмма выводит каэн:дую п-ю точку, игнорируя данные строк, скрытых автофильтром

Для включения автофильтра используется команда Данные'=>Фильтр'=>Автофильтр. Щелчок на кнопке раскрытия списка в ячейке СЗ активизирует раскрывающийся список, в котором задается условие вывода, т.е. о.

Описанная методика не работает, если снят флажок Отображать только видимые ячей­ ки, расположенный во вкладке Диаграмма, диалогового окна Параметры. Чтобы активизи­ ровать это окно, выделите диафамму и выберите команду Сервис==>Параметры. По умол­ чанию флажок Отображать только видимые ячейки установлен.

Основной недостаток описанной методики состоит в том, что процесс уста­

новки значения /? автоматизирован не полностью. Изменив значение в ячейке В1, нужно заново настроить критерий автофильтра в столбце G. Автоматиче­ ского сокрытия строк не происходит.

Использование формул массива

Описанная выше методика работает хорошо, однако хотелось бы, чтобы для поль­ зователя процесс изменения величины п был полностью автоматизирован. Специа­ лист по диаграммам Excel Тушар Мехта (Tushar Mehta) разработал для этого остроум­ ную методику, в которой используются именованные формулы. Разработанная им ме­ тодика применяется в примере этого раздела.

На рис. 7.12 показан рабочий лист с теми же данными, что и в предыдущем примере. В рабочей книге определены три именованных диапазона: Nth (ячейка В1), Даты (диапазон А4:А368) и Данные (диапазон В4:В368). Ячейка Nth связана со счетчиком.

Рабочий лист содержит два столбца (D и Е) с многоячеечными формулами масси­ вов. Формула массива в D4:D368 имеет вид

=Ч(СМЕЩ(Даты;(СТРОКА(СМЕЩ(Лист1!$А$1;О;О;ЧСТРОК( Даты)/Nth))-1)*Nth;0))

Она возвращает массив, состоящий из каждой «-й строки диапазона Даты. Формула массива в диапазоне Е4:Е368 похожа на предыдущую и возвращает мас­

сив, состоящий из каждой /?-й строки диапазона Данные.

=4(СМЕЩ(Данные;(СТРОКА(СМЕЩ(Лист1!$А$1;О;О;ЧСТРОК( Данные)/Nth))-1)*Nth;0))

Глава 7. Интерактршные диаграммы

223

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

Часть П. Построение диаграмм

ные начинаются со строки, в которой расположена активная ячейка, а количество то­ чек ряда определяется значением ячейки В2. Нажатие клавиши <F9> или щелчок на счетчике приводит к вычислению листа и обновлению диаграммы.

КопТочек:! Диаграмма обновляется с помощью счетчина или клавиши <F9>

Категории Данные

5001

482

523

М "i >' Й|\Лист1/

•Й

Рис. 7.14. На диаграмме отображается число точек

данных, на­

чиная с точки, определяемой активной ячейкой

 

Создание диаграммы

Диаграмма представляет собой стандартный график. Как и в предыдущем примере, в рабочем листе используется закрепленная область для обеспечения видимости диа­ граммы и счетчика, когда рабочий лист прокручивается по вертикали. Закреплены и остаются видимыми четыре первые строки.

Заголовок диаграммы связан с ячейкой, содержащей формулу, ссылающуюся на ячейку КолТочек:

= "Вывод "

бсКолТочек &" точек, начиная

со строки

с активной ячейкой"

Определение имен

Ячейка В2, которой присвоено имя КолТочек, содержит количество выводимых диаграммой точек. В примере используется также связанный счетчик, с помощью ко­ торого пользователь может изменять значение ячейки КолТочек.

В формуле РЯД используются две именованные формулы. Как и в предыдущем примере, эти две формулы являются смешанными. В приведенных ниже именован­ ных формулах предполагается, что при их создании активной была ячейка А5 (расположенная в первой строке данных).

Формула Категории определяется так: =СМЕЩ(Лист1!$А5;О;О;КолТочек)

Формула Данные имеет следующий вид:

=СМЕЩ(Лист1!$В5;О;О;КолТочек)

Глава 7. Интерактивные диаграммы

227

Когда рабочий лист вычисляется, именованные формулы обновляются соответст­ венно тому, какая ячейка в данный момент активна.

Использование макроса

Автоматическое вычисление рабочего листа при каждом перемещении указателя ячей­ ки можно обеспечить с помощью простого макроса VBA. Макрос запускается и выполняет вычисление рабочего листа при каждом перемещении указателя ячейки, поэтому нажи­ мать клавишу <F9> для обновления диафаммы в примере с макросом не нужно. Чтобы добавить макрос в рабочую книгу Pic07_l4 .xls, выполните следующее.

1. Выведите на экран панель управления Visual Basic и щелкните на кнопке Редак­ тор Visual Basic. Активизируется редактор VBA, выводящий пустой модуль кода для рабочего листа.

2.Введите в окне редактора следующий код: Private Sub Worksheet_SelectionChange _

(ByVal Target As Range) ActiveSheet.Calculate

End Sub

3. Нажав клавиши <Alt+Fll>, вернитесь в Excel. Пример с макросом приведен в файле Pic07_l4a.xls.

Определение выводимых рядов с помощью флажков

в примере, показанном на рис. 7.15, выводится график с тремя рядами данных. Количество рядов, фактически выводимых диаграммой, определяется состоянием трех флажков. Когда все три флажка установлены, выводятся данные по всем трем продук­ там. При снятии любого из флажков соответствующая линия исчезает из графика.

Создание диаграммы

Диаграмма представляет собой стандартный график, в котором используются дан­ ные диапазона A1:D13.

Добавление флажков

Чтобы добавить в рабочий лист флажки, выполните ряд действий.

1.Если панели инструментов Формы на экране нет, установите ее. Для этого вы­ берите команду Вид'=>Панели инструментов'=>Формы.

2.На панели Формы щелкните на флажке и перетащите его в рабочий лист, в ре­ зультате в рабочем листе будет создан флажок.

3.Щелкните правой кнопкой мыши на флажке и в контекстном меню выберите команду Формат объекта; активизируется диалоговое окно Формат элемента управления.

4.Откройте вкладку Элемент управления.

5.В поле Связь с ячейкой введите $G$4. Этим вы связываете флажок с ячейкой G4, в которой хранятся значения ИСТИНА или ложь, в зависимости от состояния флажка.

6.Щелкнув на кнопке ОК, закройте диалоговое окно Формат элемента управления.

7.Дважды повторив действия, описанные в пп. 2-6, создайте еще два флажка и свяжите их с ячейками G5 и G6.

2 2 8

Часть П. Построение диаграмм

|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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]