Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
курсовая / Источники / excel_2010_professionalnoe_programmirovanie_na_vba_RuLit_Me_412629.pdf
Скачиваний:
4
Добавлен:
27.09.2025
Размер:
22.97 Mб
Скачать

90

Часть I. Введение в Excel

Формулы массивов

Массив — это коллекция ячеек или значений, которой управляют как единым целым. Формулой массива является формула специального вида, которая обрабатывает массивы данных. Результатом выполнения формулы массива может быть как единичный резуль­ тат, так и набор значений, причем каждое из них помещается в отдельную ячейку (Excel допускает расположение в одной ячейке только одного значения).

Например, если вы умножаете массив размером 1x5 на массив размером 1x5, то в ре­ зультате получаете массив, который имеет размер 1x5. Другими словами, результат вы­ полнения подобной операции занимает пять ячеек рабочего листа; каждый элемент пер­ вого массива умножается на соответствующий элемент второго массива. Вы получите пять новых значений, каждое из которых будет занимать собственную ячейку. Следую­ щая формула массива умножает значения массива А1:А5 на соответствующие значения массива В1:В5. Такая формула должна вводиться одновременно в пять ячеек.

{= А 1 : А 5 * В 1 : В 5 }

Примечание

Формула массива вводится после нажатия комбинации клавиш <Ctrl+Shift+ Enter>. Для указания того, что в строке формул содержится формула массива, используются фигурные скобки, в которые она заключена. Именно таким об­ разом будут выделяться формулы массивов, представленные в этой книге. При самостоятельном вводе формул массивов фигурные скобки не нужны.

Пример формулы массива

В Excel с помощью формул массивов можно выполнять отдельные операции над ка­ ждой ячейкой диапазона, причем во многом таким же образом, как и посредством цик­ лических структур языка программирования. Если вам еще не приходилось использовать формулы массивов, то внимательно рассмотрите описанный далее пример.

На рис. 3.6 представлена электронная таблица с текстом в ячейках А1:А5. Цель дан­ ного упражнения состоит в том, чтобы создать единственную формулу, которая возвра­ тит сумму, равную общему количеству символов в этом диапазоне. Если не требовать выполнения этой задачи с помощью единственной формулы, то можно создать формулу с функцией ДЛСТР, скопированной во все ячейки столбца В, а затем с помощью функции СУММ сложить результаты промежуточных формул.

 

В1

- (*

'

*]{=СУММ(ДЛСТР(А1:А5))}

1

 

- 4.А

ш ш х ы ь

^ ш

т в ш .1 ,

.'-«'.’ ...4

 

ш кролик

i

а

 

 

 

2

койот

 

31

 

 

 

j n

перепелка

 

31

 

 

 

4

олень

 

31

 

 

 

Л * пекари

 

31

 

 

 

6

 

 

 

 

 

 

JL

А

Рис. 3.6. В ячейке В1 находится формула массива, которая возвращает общее число символов, содержащихся в диапа­ зоне А1:А5. Обратите внимание на скобки встроке формул

Глава 3. Особенности формул

91

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

1.Выделите диапазон ячеек В1 :В5.

2.Введите следующую формулу:

=ДЛСТР(А 1 :А 5 )

3. Нажмите комбинацию клавиш <Ctrl+Shift+Enter>.

Эти действия выполняются для введения единственной формулы в пять ячеек. Затем введите формулу СУММ, которая складывает длины значений из ячеек В1:В5, и тогда вы увидите, что в ячейках А1:А5 находится всего 31 символ.

Главное в этом примере то, что полученные пять элементов массива в ячейках В1:В5 отображать не обязательно, так как массив может храниться в памяти. Помня об этом, вы вправе в любую пустую ячейку ввести следующую формулу (обязательно с помощью комбинации клавиш <Ctrl+Shift+Enter>):

{=СУММ (ДЛСТР (А 1 : А 5) ) }

Указанная формула создает (в памяти) массив из пяти элементов, которыми являются значения длины каждой строки массива, расположенного в ячейках А1:А5. Этот массив значений используется в качестве аргумента функции СУММ — и в результате формула возвращает значение 31.

Создание календаря с помощью формулы массива

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

Формула массива, введенная в ячейки В5:Н10, имеет следующий вид.

(=ЕСЛИ (МЕСЯЦ (ДАТА (ГОД (ВЗ) ;МЕСЯЦ(ВЗ) ; 1) ) оМЕСЯЦ (ДАТА (ГОД (В3 ) ;

МЕСЯЦ(ВЗ); 1 ) - (Д Е Н Ь Н ЕД (Д А ТА (ГО Д (В З);М ЕС Я Ц (В З);1)) - 1 ) +

 

{ 0 : 1 : 2 : 3 : 4 : 5 } * 7 + { 1 ; 2 ; 3 ; 4 ; 5 ; 6 ; 7 } - 1) ; " " ; ДАТА(ГОД(ВЗ) ;

.

МЕСЯЦ(ВЗ); 1) - (ДЕНЬНЕД(ДАТА(ГОД(ВЗ);М ЕСЯЦ(ВЗ);1 ) ) -

1) + { 0 :1 : 2 : 3 : 4 : 5 } *7 + { 1; 2 ; 3 ; 4 ; 5 ; 6 ; 7 } -1 ) }

 

Формула возвращает набор последовательных числовых значений, соответствующих датам, поэтому для корректного отображения дат следует отформатировать ячейки с по­ мощью пользовательского числового формата (“d”).

Г Ч Компакт-диск

ц На прилагаемом компакт-диске находится рабочая книга с примером календаря, а также ряд других примеров формул массивов. Соответствующий файл называется array examples .xlsx. Помимо этого, на компакт-диске находится рабочая книга yearly calendar .xlsx, которая реализует пол­ ный календарь на весь год.

Достоинства и недостатки формул массивов

Ниже перечислены преимущества формул массивов в сравнении с формулами для одной ячейки:

зачастую требуют меньше памяти;

позволяют выполнять вычисления намного эффективнее;