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

Уокенбах Формулы в Excel

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

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

Вкладка Параметры диалогового окна Проверка вводимых значений содержит еще два флажка:

Игнорировать пустые ячейки. Если флажок установлен, допускаются пустые записи.

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

Важно понять, что даже привключенной проверке вводимых значений пользователь может ввести ошибочные данные. Если в раскрывающемся списке Вид вкладки Сообщение об ошибке диалогового окна Проверка вводимых значений выбрано любое из значений, кроме Останов, недопустимые значениямогут быть введены.

После того как данные введены, можно найти записи, выходящие заустановленные пределы. Если щелкнуть на кнопке Обвести неверные данные панели инструментов Зависимости, ячейки, содержащие неверные данные, будут обведены (рис. 19.21). Если неверные данные исправить, обводка будет снята.

2 .

JL

mm 10 *

17"

12-

1'f"

1

8 1 С i о J e i *. J 0 i ,и i IT;

 

One

'„."" 3 '"'"

<

"Four'

<

•"•"Eiiht""" <"' ...jblinft..10 ~

ншнншншlipiiiiliiii^ >|П

Рис. 19.21. Обведение отдельных записей (ячеек, содержащих неверные значения)

Использование формул вусловиях проверки вводимых значений

В простых случаях проверки вводимых значений работа с данным средством достаточно проста и понятна. Но подлинная сила средства проявляется при использовании формул проверки вводимых значений.

Вводимая формула должна быть логической, то есть возвращать либо значение ИСТИНА, либо ложь. Если формула равна значению ИСТИНА, данные считаются достоверными иостаются в ячейке. Если формула равна значению ложь, появляется диалоговое окно с сообщением, определенным на вкладке Сообщение об ошибке диалогового окна Проверка вводимых значений.

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

450

Часть V.Совершенное владение формулами

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

Использование формул проверки вводимых значений для ввода только определенных значений

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

Принятиетолькотекста

Для того чтобы диапазон воспринимал лишь текст (не значения) воспользуйтесь следующей формулой проверки вводимых значений:

=ЕТЕКСТ(А1)

В данной формуле предполагается, что ячейка А1 находится в левом верхнем углу выбранного диапазона.

Принятие только значений, больших, чем впредыдущей ячейке

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

=А2>А1

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

Принятие не дублированных данных

Следующая формула проверки вводимых значений не позволяет пользователям вводить повторяющиеся записи в диапазоне Al: C20:

=СЧЕТЕСЛИ($А$1:$С$20;Al)=1

В данной формуле предполагается, что ячейка А1 находится в левом верхнем углу выбранного диапазона. Заметьте, что первый аргумент функции СЧЕТЕСЛИявляется абсолютной ссылкой, а второй он изменяется для каждой из ячеек. На рис. 19.22 показана формула проверки значений в действии (формула вызывает диалоговое окно с сообщением обошибке).

Принятие текста, начинающегося сбуквы "А"

Следующая формула проверки вводимых значений демонстрирует, как можно выполнить проверку введения определенного символа. В данном случае формула используется для гарантии того, что вводимая пользователем запись будет текстовой строкой, начинающейся с буквы "А" (в верхнем или нижнем регистре).

=ЛЕВСИМВ(А1)="аи

В данной формуле предполагается, что ячейка А1 находится в левом верхнем углу выбранного диапазона.

Глава 19.Условное форматирование ипроверка вводимых значений

451

 

vahdah

 

 

 

1

Data Validation

т

A3

2

Accepts only non-duplicated data

 

4

 

f •

 

7

 

1

5

 

 

6

—^м

 

7 |5

 

 

 

 

 

1

iiP

•w

ift

джтад*

Pwc. 19.22. Использование проверки вводимых значений для исключения возможности ввода повторяющихся значений

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

=ЛЕВСИМВ(А1;

Использование пользовательских функций вформулах проверки вводимых значений

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

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

Часть VI данной книги посвящена пользовательским VBA-функциям.

Резюме

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

Следующая глава посвящена тому, что я называю мегаформулой.

452

Часть V. Совершенное владение формулами

Глава 20

Создание мегаформул

Вэтой главе...

Что такое мегаформула?

Создание мегаформулы: простой пример

Примеры мегаформул

Преимущества и недостатки использования мегаформул

Резюме

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

Что такое мегаформула?

Часто при работе с электронными таблицами для получения желаемого результата приходится использовать промежуточные формулы. Другими словами, формула может зависеть от других формул, которые в свою очередь могут зависеть еще от следующих. После того как удалось заставить все формулы работать правильно, можно удалить промежуточные формулы и создать одну единственную (более сложную) формулу. За неимением более подходящего термина я называю такие формулы мегаформулами.

В чем состоит преимущество использования мегаформул? Они занимают меньшее число ячеек, а также могут повысить скорость пересчета. Кроме того, вы можете произвести впечатление на людей, известных своим умением "формулопостроения". Недостатки? Формула с большой вероятностью не будет подлежать расшифровке или модификации даже со стороны человека, ее создавшего.

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

Ограничением техники мегаформул является то, что формулы Excel не могут содержать более 1024 символов.

Создание мегаформулы: простой пример

Создание мегаформулы большей частью состоит в копировании текста формулы и его вставки в другую формулу. Давайте начнем с относительно простого примера. Изучите электронную таблицу, показанную на рис. 20.1. В данной таблице используются формулы для вычисления займов под залог недвижимости.

Глава 20. Создание мегаформул

453

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

; Таблица 20.1. Формулы, используемые для вычислений

Ячейка

Формула

сю

=С4*С5

С И

=С4-С10

С12

=ПЛТ(С7/12;С6;-С11)

С13

=С12*С6

С14

=С13-С11

Описание

Вычисляет первый взнос Вычисляет сумму займа Вычисляет месячные выплаты Вычисляет суммарные выплаты Вычисляет выплаченный процент

Предположим, что насна самом деле интересует выплаченный процент (ячейка С14). Вы, конечно же, можете скрыть строки, содержащие лишнюю информацию. Однако существует еще и возможность создания единственной формулы, которая бы выполняла работу нескольких промежуточных.

Формула, вычисляющая выплаченный процент, зависит от формул в ячейках СИ и С13 (прямая зависимость). Кроме этого, формула в ячейке С13 зависит от формулы в ячейке

С12, которая в свою очередь зависима от ячейкиСИ.

 

 

 

Таким образом, длявычисления общего дохода исполь-

 

в

г> с

зуется пять формул. Ниже приведено описание дейст-

 

 

Mortgage Loan Worksheet

вий,

которые необходимо выполнить для того, чтобы

 

Intermediate Formulas

 

Input Cells

создать единственную формулу, вычисляющую общий

 

 

Purchase Price

$250 000

процент (без использования промежуточных формул).

 

Down Payment Pet.

20%

 

Loan Term

360

В ячейке С14 содержится следующая формула:

 

Interest Rate

8,00%

 

 

 

=С13-С11

I]

Result Cells

 

 

iqj

Down Payment:

$50 000

Ниже приводится описание того, как преобразовать

"it'1

Loan Amount

$200 000

данную формулу в мегаформулу:

 

Monthly Payment

$1 467.53

13!

Total Payments

$528 310

 

 

 

Total Interest

$328 310

1.

Ссылку на ячейку С13 замените формулой, со-

16:

 

 

 

держащейся в данной ячейке. Перед этим заклю-

 

> il\sheetl/

 

 

 

 

 

 

чите данную формулу в круглые скобки. Теперь

Рис, 20Л. В данной электронной таб-

 

формула в ячейке С14 имеет вид:

лице для вычисления займов под залог

 

 

недвижимости используется значи-

 

— ( \^ J_ £ \^у Q ] ~ \*S JL JL

 

J

 

тельное количество формул

2.Ссылку на ячейку С12 замените формулой, содержащейся в данной ячейке. Теперь формула в ячейке С14 имеет вид:

=(ПЛТ(С7/12;С6;-С11) *С6) -СИ

3.Ссылку наячейку СИ замените формулой, содержащейся в данной ячейке. Перед копированием формулы, ее необходимо заключить в круглые скобки. Теперь формула в ячейке С14имеет вид:

=(ПЛТ(С7/12;Сб;-(С4-С10))*С6)-(С4-С10)

4.Ссылку наячейку СЮ замените формулой, содержащейся в данной ячейке. Перед копированием формулы, ее необходимо заключить в круглые скобки. После этого формула в ячейке С14примет вид:

=(ПЛТ(С7/12;С6;-(С4-(С4*С5)))*С6)-(С4-(С4*С5))

454

Часть V. Совершенное владение формулами

!,|njxl

Теперь формула содержит ссылки только на ячейки вводимых данных. Можно неопасаясь удалить формулы в ячейках СЮ: С13. Теперь работу, возлагаемую раньше на промежуточные формулы, выполняет одна единственная мегаформула.

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

Предыдущий пример был приведен для демонстрации процесса создания мегаформул. Данная техника неявляется самым эффективным способом вычисления общего процента позайму.Для выполнения подобных вычислений вExcel имеется более прямой путь: вы можете использовать одну изфункцию изнадстройки"Пакет анализа".

Копирование текста из формулы

Создание мегаформулы состоит в копировании текста формулы и замене имссылки на ячейку. Для копирования содержимого формулы активизируйте ячейку и нажмите клавишу <F2>. Затем выделите текст формулы (без знака равенства), используя сочетания клавиш <Shift+Home>, а затем <Shift+->>. Затем, нажав сочетание клавиш <Ctrl+C>, скопируйтевыделенный текст в буфер обмена. Активизируйте ячейку, содержащую мегаформулу, и нажмите клавишу <F2>. Используйте клавиши со стрелками совместно с клавишей <Shift> для выделения заменяемой ссылки. Наконец, используйте сочетание клавиш <Ctrl+V> для замены выделенного текста содержимым буфера обмена.

В некоторых случаях для поддержки корректной работы формулы копируемый текст должен заключаться в круглые скобки. Если после вставки текста в формулу, возвращаемое ее значение изменяется, отмените вставку, нажав <Ctrl+Z>. Заключите копируемую формулу в скобки ипопробуйте вставить снова.

Создание мегаформулы по существу состоит в подстановке текста формул вместо ссылокна ячейки. Подстановки осуществляются до тех пор, пока вмегаформуле неостанутся ссылки только на ячейки вводимых данных. На каждом шаге вы имеете возможность проверить свою работу, следя за тем, не изменяется ли возвращаемое формулой значение. Впредыдущем примере несколько развозникала необходимость заключать копируемую формулу в круглые скобки.

Примеры мегаформул

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

жения последнего символа пробела в строке и определение

VfRobTrfl Lee"

* • -**— ""' «^

2 Jim Jones

 

'I'

 

J _ R LBurnside

 

действительности номера кредитной карточки.

 

I

4 _' Michael J Hammer

 

5 T Henry Jackson

 

v *

 

$tjFrank J Thomas

 

; 5

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

 

 

Y"v Mary Richards

Helton

 

8mTom A Smith

 

 

• - r

 

 

для удаления вторых имен

H\ ¥ M\mult,pleformulas/Kij

НИ

и инициалов

Рис. 20.2. Перед вами стоит за-

дача удаления из записей вто-

Рассмотрим рабочий лист со столбцом, содержащим фами-

лии и имена людей (см. рис. 20.2). Предположим, чторабочий лист содержит тысячи фамилий, и вам необходимо подчистить все записи, удалив вторые

Глава 20. Создание мегаформул

455

имена и инициалы. Вы не можете написать VBA-макрос, а на редактирование списка вручную уйдет не один час. Вся надежда на использование формул. Заметьте, что не во всех записях есть вторые имена или инициалы, что делает задание менее тривиальным. Хотя данная задача и не является очень сложной, ее решение обычно включает использование нескольких промежуточных формул.

На рис. 20.3 представлено более удобное решение, для получения которого потребовалось шесть промежуточных формул, описанных в табл. 20.2. Список сотрудников приведен в столбце А, а результат отображается в столбце Н. В столбцах с В по G приведены промежуточные формулы.

Следует отметить, что данный алгоритм не идеален. Например, он не будет работать, если есть только фамилия человека (например, Тарабров). Также он не сработает, если есть два вторых имени (например, Джон Яков Роберт Смит). Данный недостаток обусловлен тем,что формула просто ищет в записи второй пробел. В данном примере формула возвратит результат Джон Роберт Смит. Далее в данной главе будет описан метод формулы массива, используемый для определения последнего пробела в строке.

SflRobert E

Lee

jRobert E. Lee

7

10

_JLJ

JL

-JL.

н

10 Robert

Lee

Robert Lee

2 j Jim Jones

 

Jim Jones

4"

#3HA4!

4 Jim

Jones

Jim Jones

3

;R

L Bumside

R L Bumside

3:

5

5R

 

iBumside

R Bumside

4

\

Michael

J. Hammer

Michael J. Hammer

8

11

HiMichael

Hammer

Michael Hamme

J S J T HenryJackson

T Henry Jackson

3:

9;

9T

 

Jackson

T Jackson

_JM Frank J Thomas

Frank J Thomas

6!

8':

8 Frank

iThomas

iFrank Thomas

,H:

 

М а г У Richards Helton

Mary Richards Helton

5;

14

14 Mary

l Helton

Mary Helton

""""Torn A

Smith

Tom A Smith

4:

7

7 ITom

Smith

Tom Smith

Рис. 20.3. Для удаления фамилий и инициалов потребовалось шесть промежуточных формул

Таблица 20.2. Промежуточные формулы впервой строке рабочего л и с т а , ^ ^ 7i доказанного на рис.; 2 0 . 3 ; ^ ^ f e ( ^ i ^ | ^ |

Ячейка

Промежуточная формула

В1

=СЖПРОБЕЛЫ(А1)

С1

=НАЙТИ("

";В1;1)

D1

=НАЙТИ("

";В1;С1+1)

Е1

=ЕСЛИ(ЕОШИБКА(Б1);C1;D1)

F1

=ЛЕВСИМВ(В1;С1-1)

G1

=ПРАВСИМВ(В1;ДЛСТР(В1)-Е1)

H I

=F1&" "&G1

Описание действия

Удаляет лишние пробелы Находит позицию первого пробела

Находит позицию второго пробела, если он есть

Использует первый пробел, если второго не существует

Извлекает имя Извлекает фамилию

Объединяет имя ифамилию

Приложив немного усилий, можно устранить все промежуточные формулы, заменить их все единственной мегаформулой. Такой результат достигается путем написания всех промежуточных формул и последующего редактирования конечной результирующей формулы (в данном случае, формулы в столбце Н) путем замены всех ссылок на ячейки,

456

Часть Ч.Совершенноевладениеформулами

копиями формул, содержащихся в этих ячейках. К счастью, вы имеете возможность использовать для копирования и вставки буфер обмена (см. предыдущую врезку "Копирование текста формулы"). Этот процесс должен продолжаться до тех пор, пока единственной оставшейся ссылкой будет ссылка на ячейку А1. По завершении процесса вы получите следующую мегаформулу, записанную в одной ячейке:

=ЛЕВСИМВ(СЖПРОБЕЛЫ(А1);НАЙТИ(" ";СЖПРОБЕЛЫ(А1);1) - 1)&" "&ПРАВСИМВ(СЖПРОБЕЛЫ(А1);ДЛСТР(СЖПРОБЕЛЫ(А1))-

ЕСЛИ(ЕОШИБКА(НАЙТИ(" ";СЖПРОБЕЛЫ(А1);НАЙТИ(" " ; С Ж П Р О Б Е Л Ы ( А 1 ) ; 1 ) + 1 ) ) ; НАЙТИ(" ";СЖПРОБЕЛЫ(А1);1);НАЙТИ(" ";СЖПРОБЕЛЫ(А1);НАЙТИ("";СЖПРОБЕЛЫ

Если формула работает правильно, столбцы с промежуточными формулами можно удалить, так как они больше не используются.

Пошаговое описание процедуры

Если вам все еще не до конца понятен данный процесс, ниже приведено пошаговое описание используемой процедуры:

1. Изучите формулу в ячейке HI. В ней есть две ссылки (на ячейки F1 иG1):

=F1&" "&G1

2.Активизируйте ячейку Gin скопируйте формулу (без знака равенства) в буфер обмена.

3.Активизируйте ячейку Hi и замените ссылку на ячейку G1 содержимым буфера обмена. Теперь в ячейке HI будет содержаться формула:

=F1&" "&ПРАВСИМВ(В1;ДЛСТР(В1)-Е1)

4.Активизируйте ячейку F i n скопируйте формулу (без знака равенства) в буфер обмена.

5.Активизируйте ячейку Hi и замените ссылку на ячейку F1 содержимым буфера обмена. Теперь в ячейке HI будет содержаться формула:

=ЛЕВСИМВ(В1;С1-1)&""&ПРАВСИМВ(В1;ДЛСТР(В1)-Е1)

6.Теперь рассмотрите ссылки на три ячейки (В1, С1 и Е1). Ссылки на них необходимо

заменить формулами, содержащимися в данных ячейках.

7.Замените ссылку на ячейку Е1 формулой, содержащейся в данной ячейке. Результат будет таким:

=ЛЕВСИМВ(В1;С1-1)&" "&ПРАВСИМВ(В1;ДЛСТР(В1)- ЕСЛИ(ЕОШИБКА(Dl);C1;D1))

8.Заметьте, что формула в ячейке HI теперь имеет две ссылки на ячейку D1.Скопируйте формулу из ячейки D1 и замените обе ссылки на нее. Теперь формула выглядит так:

=ЛЕВСИМВ(В1;С1-1)&" "&ПРАВСИМВ(В1;ДЛСТР(В1)- ЕСЛИ(ЕОШИБКА(НАЙТИ(" " ; В 1 ; С 1 + 1 ) ) ; С 1 ; Н А Й Т И ( " " ; В 1 ; С 1 + 1 ) ) )

9.Замените четыре ссылки на ячейку С1 формулой, содержащейся в данной ячейке. Ре-

зультат будет таким:

=ЛЕВСИМВ(В1;НАЙТИ(" и ; В 1 ; 1 ) - 1 ) & " "&ПРАВСИМВ(В1;ДЛСТР(В1)- ЕСЛИ(ЕОШИБКА(НАЙТИ(" ";В1;НАЙТИ(" " ; В 1 ; 1 ) + 1 ) ) ; Н А Й Т И ( " " ; В 1 ; 1 ) ; НАЙТИ(" ";В1;НАЙТИ( " " ; В 1 ; 1 ) + 1 ) ) )

Глава20. Создание мегаформул

457

10.И наконец, замените девять ссылок на ячейку В1 формулой, содержащейся в данной ячейке. Теперь вы получите:

=ЛЕВСИМВ(СЖПРОБЕЛЫ(А1);НАЙТИ(" ";СЖПРОБЕЛЫ(А1);1)- 1)&" "&ПРАВСИМВ(СЖПРОБЕЛЫ(А1);ДЛСТР(СЖПРОБЕЛЫ(А1))-

ЕСЛИ(ЕОШИБКА(НАЙТИ(" ";СЖПРОБЕЛЫ(А1);НАЙТИ(" ";СЖПРОБЕЛЫ(А1);1)+1 ));НАЙТИ(" ";СЖПРОБЕЛЫ(А1);1);НАЙТИ(" ";СЖПРОБЕЛЫ(А1);НАЙТИ (" ";СЖПРОБЕЛЫ(А1);1)+1)))

Обратите внимание, что теперь формула в ячейке HI имеет ссылки только на ячейку А1. Создание мегаформулы завершено; она выполняет точно ту же работу, что и все промежуточные формулы (которые теперь можно удалить).

Сравнение скорости и эффективности

Из-за большой сложности мегаформулы может показаться, что использование такой методики приводит к замедлению вычислений. На самом деле ничего подобного не происходит. В качестве тестового примера я создал рабочую книгу, использующую мегаформулу 65536 раз. Затем была создана другая рабочая книга, в которой для получения 65536 результатов каждый раз использовалось шесть промежуточных формул. Результаты были сравнены со скоростью работы пользовательской VBA-функции, выполняющей те же операции. В табл. 20.3 представлены результаты, полученные для трех этих методов.

Таблица 20.3. Сравнение промежуточных формул, мегаформулы и VBA-функции

Метод

Время пересчета (секунды)

Размер файла

Промежуточные формулы

10,8

24,4МБ

Мегаформула

6,2

8,9МБ

VBA-функция

106,7

8,6МБ

Результат, конечно же, будет зависеть от производительности системы и количества установленной оперативной памяти.

Как не трудно заметить, использование мегаформулы приводит к ускорению вычислений и существенному уменьшению размера рабочей книги. VBA-функция оказалась намного медленнее — результаты фактически несопоставимы. Такой результат достаточно типичен для VB А-функций, они всегда медленнее встроенных функций Excel.

Использование мегафомулы для нахождения положения последнего пробела встроке

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

458

Часть V. Совершенное владение формула

В данной технике используются массивы; материал, относящийся к данной теме, приведен в части IV.

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

Создание промежуточных формул

Замысел состоит в создании массива содержащихся в строке символов, расположенных в обратном порядке. После того как массив будет создан, мы сможем использовать функцию П0ИСКП03 для нахождения первого пробела в массиве.

Посмотрите на рис. 20.4, на котором показан результат роботы промежуточных формул. Ячейка А1 содержит случайное имя, состоящее из 12 символов. В диапазоне В1 :В12 содержится следующая формула массива:

{=СТРОКА(ДВССЬШ("1:М&ДЛСТР(А1)))}

ЩШШШШШш

 

 

 

m

s I

F

I

 

0 T^

1

Jim E Brown

1

""""

~

 

:

r

 

 

 

"if"

 

 

 

 

 

 

 

2

11

w

 

 

 

 

'"g

;

3

10

0

 

 

 

 

T"

 

4

9

r

 

 

 

 

 

5

8

В

 

 

 

 

JL

 

6

7

 

 

 

 

 

 

 

7

6

 

 

 

 

 

.$ ;

8

5

E

 

 

 

 

9

4

 

 

 

 

 

Ш

10

3

m

 

 

 

 

11

2

1

 

 

 

 

™ _

 

12

1

J

 

 

 

 

 

 

 

 

 

 

*

V » «\sheetl/She«e2/

 

hi

 

 

 

 

Рис. 20.4. Все эти промежуточные формулы в конце концов преобразованы в мегаформулу

Эта формула вводится во всем диапазоне Bl: B12 путем его выделения, ввода формулы и нажатия клавиш <Ctrl+Shift+Enter>.Фигурные скобки вводить не нужно. Excel добавляет их для обозначения формулы массива. Данная формула возвращает массив из двенадцати последовательных целых чисел.

В диапазоне Cl: C12 содержится следующая формула массива: {=ДЛСТР(А1)+1-В1:В12}

Данная формула по существу располагает целые числа, полученные в столбце В, в обратной последовательности.

Диапазон Dl: D12 содержит следующую формулу массива: (ПСТР(А1;С1:С12;1)}

Данная формула использует функцию ПСТР для извлечения отдельных символов из ячейки А1. Функция ПСТР использует в качестве второго аргумента массив Cl: C12. Результатом будет массив символов, расположенных в обратном порядке.

В ячейке Е.1 содержится формула: =П0ИСКП03(" ";D1:D12;O)

Данная формула, не являющаяся формулой массива, использует функцию ПОИСКПОЗ для возврата позиции первого пробела в диапазоне D1:D12. В примере, приведенном на

Глава20.Создание мегаформул

459