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

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

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

Отображение значений, отформатированных втекстовом формате

Функция ТЕКСТ в приложении Excel позволяет отобразить значение ячейки в определенном числовом формате. На первый взгляд может показаться, что эта функция имеет весьма сомнительную пригодность. Но она помогает осуществить некоторые полезные действия, предназначенные для определенных целей, например таких, что продемонстрированы в этом разделе. Обратите внимание, на рис. 5.2 отображен обычный рабочий лист Excel. Ниже приведена формула, используемая в этом рабочем листе в ячейке D1:

="Чистая прибыль "&ВЗ

 

А

8

С

.

D

} - —

1

Прибыль

155 609.84

 

Чистая прибыль 104616,52

2

Расходы

50 993,32

 

 

 

 

з

Чистая прибыль

104 616.52

 

 

 

 

А

 

 

 

 

 

 

5

 

 

 

Iil

— I

y\ П'

и

< • м\Лист1/Пист

 

 

Рис. 5.2. Формула, содержащаяся в ячейке D1,отображает уже не просто форматированное число

По существу, эта формула объединяет текстовую строку с содержимым ячейки ВЗ и отображает полученный результат. Обратите внимание, что к ячейке ВЗ не был применен ни один специальный формат. Тем не менее, при желании пользователь может установить для этой ячейки денежный формат с использованием символа валюты.

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

Обратите внимание, как была изменена формула, использующая функцию ТЕКСТ для того, чтобы применить форматирование к значению, содержащемуся в ячейке ВЗ:

= "Чистая прибыль "&ТЕКСТ(ВЗ;"$#,##0,00")

Эта формула будет отображать и текст, и само отформатированное числовое значение:

Чистая прибыль $104 616,52.

Второй аргумент функции ТЕКСТ содержит стандартную строку числового формата, используемого в приложении Excel. В качестве этого аргумента пользователь может ввести любую допустимую строку числового формата.

В предыдущем примере мы использовали простую ссылку на рассчитываемую ячейку ВЗ. Но это не единственная возможность. Вместо ячейки можно использовать определенное выражение. Ниже приведен пример, в котором текст объединяется с числом, полученным путем следующего вычисления:

="Средний расход: "&ТЕКСТ(СРЗНАЧ(А:А);"$#,##0,00")

Эта формула возвращает строку: Средний расход: $ 7 794,57. Давайте рассмотрим другой пример, в котором используется функция СЕГОДНЯ, возвращающая текущую дату и время. Использование этой функции совместно с функцией ТЕКСТ позволяет отобразить на экране текущую дату и время, представленную в удобном для восприятия формате:

="Отчет напечатан "&ТЕКСТ(СЕГОДНЯ();"д ММММ, г г г г в ч:мм АМ/РМ")

130

Часть II. Использованиефункций вформул

Эта формула отображает следующую запись: Отчет напечатан 22 Июль, 2001 в 3:23 РМ.

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

Отображение денежных значений, отформатированных как текст

Вприложении Excel существует функция РУБЛЬ, с помощью которой содержащееся в ячейке число преобразуется в текст, представленный в денежном формате. Эта функция использует два аргумента: число, которое необходимо преобразовать, и количество знаков, отображаемых на экране после запятой. Как правило, функция РУБЛЬ использует обозначения денежной единицы, принятых в данном регионе (например, $ в США).

Вотдельных случаях функция РУБЛЬ может использоваться вместо функции ТЕКСТ. Однако намного эффективней использовать все-таки функцию ТЕКСТ, которая является более гибкой, поскольку не ограничивает пользователя определенным числовым форматом.

Приведенная ниже формула возвращает текст: Итого: 1 287,37р. Второй аргумент функции РУБЛЬ определяет число десятичных знаков после запятой.

="Итого: "&РУБЛЬ(12 87,3 67;2)

Повторяющиеся символы или строки

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

= П О В Т О Р ( " Н о " ; 3 )

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

= П О В Т О Р ( | 1 ~ " ; 2 0 )

Создание текстовой гистограммы

Одно из наиболее полезных направлений использования функции ПОВТОР— это создание простой гистограммы непосредственно на рабочем листе. В этом случае необходимость использования диаграммы полностью отпадает. Обратите внимание, на рис. 5.3 приведен пример такой гистограммы. Такой вид графического отображения данных может быть особенно полезным, когда пользователю необходимо визуально отобразить сумму множества значений, поскольку стандартная диаграмма Excel, для подобных случаев, может быть очень громоздкой.

Глава 5. Работастекстом

131

2

 

Budget Actual Pet. Diff

3 ^Jan

300

311

37%

JL.Feb

300

298

-0 7%

""§"Mar

300

305

17%

JSjApr

350

351

0

3%

7

May

350

402

14 9%

8

Jun

350

409

16

9%

"#"" Jut

500

421

-15 8%

10"Aug

500

454

-92%

JijSep

500

474

-52%

 

 

500

521

4

2%

 

 

500

476

-4 8%

I T

Dec

500

487

-2

6%

Ж ..

 

 

 

it ii

> w\sheetl/

 

 

 

Рис. 5.3. Чтобы быстро создать гистограмму в пределах пространства рабочего листа, воспользуйтесьфункцией ПОВТОР

Формулы, содержащиеся в ячейках столбцов Е и G, графически отображают ежемесячное изменение бюджета, выводя на экран целый ряд символов шрифта Wingdings. В этом примере мы использовали символ п, который в этом шрифте отображается как маленький квадрат. Формула, использующая функцию ПОВТОР, определяет количество символов, которое должно быть отображено на экране. Формулы для ячеек, формирующих диаграмму, будут следующими:

ЕЗ: =ЕСЛИ(D3<0;ПОВТОР("п";-ОКРУГЛ(D3*100;0));"") F3: =АЗ

G 3 : = Е С Л И ( D 3 > O ; П О В Т О Р ( " п " ; О К Р У Г Л ( D 3 * 1 0 0 ; 0 ) ) ; " " )

Установите для ячеек ЕЗ и G3 шрифт Wingdings, а затем скопируйте формулы, содержащиеся в этих ячейках, вниз в ячейки столбцов, чтобы распределить данные. Выровняйте текст в столбце Е по правому краю, после чего примените любое другое форматирование ячеек. Имейте в виду, что в зависимости от величины числового диапазона данных может возникнуть необходимость изменить масштаб значений. Поэкспериментируйте с перемещением 100 значений в формулах. Выбранный ранее для диаграммы символ п можно заменить на любой другой.

Добавление кчислу определенных символов

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

= (А1&ПОВТОР(11*11 ;24-ДЛСТР(А1) ) )

Используя следующую формулу, пользователь может добавить звездочки к числу слева:

=ПОВТОР(и * " ; 2 4 - Д Л С Т Р ( А 1 ) ) & А 1

Следующая формула отображает звездочки, дополняющие число сразу с двух сторон. Эта формула возвращает 24 символа в том случае, если число в ячейке А1 содержит четное количество символов, и 23 символа, если число содержит нечетное количество символов.

=ПОВТОР("*";12-ДЛСТР(А1)/2)&А1&ПОВТОР("*";12-ДЛСТР(А1)/2)

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

= ( Т Е К С Т ( А 1 ; " $ # , # # 0 , 0 0 " ) & П О В Т О Р ( " * " ; 2 4 - Д Л С Т Р ( Т Е К С Т ( А 1 ; " $

На рис. 5.4 показано действие приведенной выше формулы.

132

Часть //.Использование функций в формулах

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

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

$ # , # # 0 . 0 0 * -

Чтобы просто дополнить число звездочками, используйте в формате две звездочки, так как это показано ниже:

$ # , # # 0 . 0 0 * *

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

Удаление лишних пробелов и непечатаемых символов

Весьма часто данные, импортируемые в рабочую книгу приложения Excel, содержат излишнее количество пробелов, а также незнакомые символы, которые к тому же могут не выводиться на печать. На этот случай в арсенале Excel имеются две функции, которые помогают пользователю подогнать данные под определенную форму. Это функции СЖПРОБЕЛЫ и ПЕЧСИМВ.

1.Функция СЖПРОБЕЛЫ удаляет все начальные и конечные пробелы, а также заменяет несколько пробелов, расположенных рядом внутри текста, на один.

2.Функция ПЕЧСИМВ удаляет из строки все непечатаемые символы. Такие символы— это "ненужные данные", они часто появляются при импортировании в Excel отдельных типов информации. Интересно, что из 255 кодовых символов ANSI, 39 — это непечатаемые символы. К ним относятся символы с кодами 1-31,128-129,141-144 и 157-158.

Вприведенном ниже примере используется функция СЖПРОБЕЛЫ. Формула возвращает значение Прибыль четвертого квартала без излишних пробелов:

=СЖПРОБЕЛЫ("

Прибыль

четвертого

квартала

")

Подсчет символов встроке

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

Глава 5. Работа с текстом

133

=ДЛСТР(А1)

Обратите внимание,что пробелы также считаются символами и включаются в результирующее значение. Следующая формула возвращает общее количество символов в диапазоне ячеек А1: A3:

=СУММ(ДЛСТР(А1);ДЛСТР(А2);ДЛСТР(АЗ))

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

Изменение регистра текста

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

1.ФункцияПРОПИСН. Эта функция преобразует все символы текста в верхний регистр.

2.Функция СТРОЧНпреобразует весь текст в нижний регистр.

3.Функция ПРОПНАЧ устанавливает для каждого слова текста "соответствующий" регистр (Первый Символ В Каждом Слове Печатается Прописными Буквами).

Эти функции действуют очень просто. Например, следующая формула все символы текста, содержащегося в ячейке А1, приводит к соответствующему регистру. Если ячейка А1 содержит текст MR. JOHN Q. PUBLIC, формула возвратит строку Mr. John Q. Public.

=ПРОПНАЧ(А1)

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

Извлечение из строки определенных символов

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

1.ФункцияЛЕВСИМВ— возвращает заданное количество символов от начала строки.

2.Функция ПРАВСИМВ— возвращает заданное количество символов от конца строки.

3.Функция ПСТР — возвращает заданное количество символов, начиная с любой позиции в пределах строки.

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

=ПРАВСИМВ(А1;10)

В следующей формуле используется функция ПСТР. Эта формула возвращает из ячейки А1 пять символов, начиная со второго. Другими словами, формула возвращает символы со второго по шестой.

=ПСТР(А1;2;5)

134

Часть II. Использование функций в форму

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

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

Таким образом, если бы ячейка А1 содержала текст ПЕРВЫЙ КВАРТАЛ, данная формула возвратила бы текст Первый квартал.

Замена одного текста другим

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

1.Функция ПОДСТАВИТЬ заменяет в строке определенный текст или символ. Эту функцию лучше всего использовать, когда известен символ, который необходимо заменить,

а не его расположение.

2.Функция ЗАМЕНИТЬ заменяет символ, расположенный в определенном месте в пределах строки. Эта функция используется при замене любого текста при известном его местоположении. Точность самого текста или символа здесь не учитывается.

Ниже приведена формула, в которой используется функция ПОДСТАВИТЬ для замены значения года 2001 на 2002 в строке Бюджет 2001. Эта формула возвращает значение Бюджет 2002.

=ПОДСТАВИТЬ("Бюджет 2001";"2 001";"2002")

Следующая формула использует функцию ПОДСТАВИТЬ для удаления из строки всех пробелов. Другими словами, она заменяет все пробелы пустой строкой и возвращает название компакт-диска Лиз Фаир: Whitechocolatespaceegg.

= ПОДСТАВИТЬ("White c h o c o l a t e s p a c e e g g " ; " " ; " " )

Другая, приведенная ниже формула, использует функцию ЗАМЕНИТЬ,чтобы заменить всего лишь один символ, расположенный в пятой позиции, ничего не вставляя вместо него. Говоря иными словами, она просто удаляет пятый символ (дефис) и возвращает текст Часть 544.

=ЗАМЕНИТЬ("Часть-544";б;1; " " )

Безусловно, можно много раз вставлять эти функции, чтобы столько же раз выполнить замену с помощью этой формулы. Обратите внимание, насколько может быть эффективной формула, использующая несколько вложенных функций ПОДСТАВИТЬ. По большому счету, эта формула заменяет в ячейке А1 каждый из семи символов, следующих друг за другом: пробел, дефис, двоеточие, звездочка, символ подчеркивания, открывающая круглая скобка и закрывающая круглая скобка:

=ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ(ПОДСТАВИТЬ ( П О Д С Т А В И Т Ь (А1; " ";"") ;"-";"") ;":"; "") ;•• *"; "") ;"_"; "") ;"(";"");") "; "" )

Поэтому, если ячейка А1 содержит строку Part-2A - Ц4М1)_А*, то данная формула возвратит Part2AZ4MlA.

Глава 5.Работастекстом

135

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

Поиск места расположения начальной позиции определенного текста или символа в пределах одной строки вприложении Excel можно осуществить спомощью функций НАЙТИи ПОИСК:

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

2.Функция ПОИСК обеспечивает поиск определенной подстроки в пределах основной текстовой строки и возвращает значение исходной позиции подстроки. Для этой функции пользователь также может определить место начала поиска.Эта функция используется для поиска нечувствительного крегистру текста или тогда, когда используются групповые символы.

Вформуле, приведенной ниже применена функция НАЙТИ, которая возвращает значение 7, тоесть номер позиции первого символа т, встречающегося в строке. Обратите внимание, что эта формула чувствительна к регистру:

=НАЙТИ("m";"Big Mamma Thornton";1)

Следующая формула использует функцию ПОИСК и возвращает значение 5 — номер позиции первого, встречающегося символа т. Вэтом случае, регистр не учитывается:

=ПОИСК("m";"Big Mamma Thornton";1)

Кроме того, в качестве первого аргумента для функции ПОИСК можно использовать следующие групповые символы:

1.Вопросительный знак (?) соответствует любому одиночному символу.

2.Звездочка (*) соответствует любой последовательности символов.

Следующая формула исследует текст вячейке А1 ивозвращает позицию первых трех стоящих последовательно символов, которые содержат между собой знак дефиса. Иначе говоря, формула отыскивает любой символ, следующий за знаком дефиса и любым другим символом. Таким образом, если ячейка А1 содержит текст Part-A90y формула возвращает значение 4.

=ПОИСК("?-?";А1;1)

Поиск изамена символа впределах строки

Функция ПОИСК может использоваться совместно с функцией ЗАМЕНИТЬ,что позволяет заменить часть найденной текстовой строки другой строкой. В действительности функция ПОИСК используется для того, чтобы найти начало расположения символа, с которым затем будет работать функция ЗАМЕНИТЬ.

Например, предположим, что ячейка А1 содержит текст "Annual Profit Figures". Формула, приведенная ниже отыскивает вэтой строке слово "Profit" и заменяет его на слово "Loss": =ЗАМЕНИТЬ(А1;ПОИСК("Profit";А1);б;"Loss")

Следующая формула использует функцию ПОДСТАВИТЬ для достижения того же эффекта, но более квалифицированнымобразом:

=ПОДСТАВИТЬ(А1;"Profit";"Loss")

136

Часть //. Использованиефункций в форму

Дополнительные текстовые формулы

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

Подсчет символов вячейке

Приведенная ниже формула подсчитывает в строке, содержащейся в ячейке А1 количество символов В, учитывая только символы верхнего регистра:

=ДЛСТР(А1)-ДЛСТР(ПОДСТАВИТЬ(А1;"В";""))

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

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

= Д Л С Т Р ( А 1 ) - Д Л С Т Р ( П О Д С Т А В И Т Ь ( П О Д С Т А В И Т Ь ( А 1 ; " В " ; " " ) ; " Ь " ; " " ) )

Подсчет строк, содержащихся вячейке

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

=(ДЛСТР(А1)-ДЛСТР(ПОДСТАВИТЬ(А1;В1;"")))/ДЛСТР(В1)

Например, если ячейка А1 содержит текст Blonde on Blonde, а ячейка В1 текст Blonde, то данная формула возвратит значение 2.

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

=(ДЛСТР(А1)-ДЛСТР(ПОДСТАВИТЬ(ПРОПИСН(А1);ПРОПИСН(В1),"")))/ДЛСТР(В1)

Определение заданного числа как порядкового номера

В некоторых случаях пользователю может потребоваться записать определенное число как порядковый номер. Например, в английском тексте Today is the 21st day of the month, число 21 преобразуется в порядковый номер, в конец которого добавляются символы st.

Символы, которые будут добавляться в конец порядкового номера, полностью зависят от самого номера. Поэтому невозможно привести стандартный пример этой формулы. Каждый пользователь всякийраз может создавать свою собственную сложную конструкцию. Большинствопорядковых номеров в английском языке используют суффикс th. Исключения составляют номера,закан-

Глава 5. Работа стекстом

137

чивающиеся числами 1, 2 или 3. То же самое касается номеров, в которых используется первый разряд — число 1, например, 11, 12 или 13. Эти числа требуют применения определенных правил, которые при желании могут быть трансформированы в формулу приложения Excel.

Формула, приведенная ниже, преобразует число, содержащееся в ячейке А1 (предполагается, что это целое число), в порядковый номер.

=А1&ЕСЛИ(ИЛИ(ЗНАЧЕН(ПРАВСИМВ(А1;2))={11;12;13});"th";ЕСЛИ(ИЛИ(ЗНАЧЕН(П

РАВСИМВ(А1))={1;2;3});ВЫБОР(ПРАВСИМВ(А1);"st";"nd";"rd");"th"))

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

1.Суффикс th используется в том случае, если последние две цифры порядкового номера представляют собой числа 11, 12 или 13.

2.Если первое правило не подходит к имеющемуся числу, то проверяется последняя цифра. Если последняя цифра 1, то используется суффикс st, если 2 — суффикс nd, если 3 — суффикс rd.

3.Если ни первое, ни второе правило не подходят, используется суффикс th.

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

На рис. 5.5, показано как работает эта формула.

Определение литеры столбца по заданному номеру

Следующая формула возвращает литеру столбца рабочего листа (в диапазоне от А до IV) в соответствии со значением, введенным в ячейку А1. Например, если ячейка А1 содержит число 29, то формула возвратит значение АС:

=ЕСЛИ(А1>26;СИМВОЛ(64+ЦЕЛОЕ((А1-1)/26));"")&СИМВОЛ(65+ОСТАТ(А1-1;26))

Имейте в виду, что данная формула не проверяет правильность введенного числового значения номера столбца. Другими словами, если ячейка А1 содержит значение меньше 1 или больше 256, то формула все-таки будет давать результат, хотя уже не имеющий никакого смысла. Ниже приведена модифицированная версия этой формулы, в которую введена функция ЕСЛИ для того, чтобы гарантировать вывод формулой допустимого столбца:

=ЕСЛИ(И(А1>0;А1<257) ;ЕСЛИ(А1>26;СИМВОЛ(64+ЦЕЛОЕ( (А1- 1)/26));"")&СИМВОЛ(65+ОСТАТ(А1-1;26));"")

Извлечение имени файла из заданного пути

Ниже приведена формула, которая возвращает пользователю имя файла, извлеченное из определенного пути. Например, если ячейка А1 содержит путь: c:\windows\desktop\myfile.xls, то данная формула возвращает текст myfile.xls.

=ПСТР(А1;НАЙТИ("* ";ПОДСТАВИТЬ(А1;"\";"*";ДЛСТР(А1)- ДЛСТР(ПОДСТАВИТЬ(А1;"\";""))))+1;ДЛСТР(А1))

138

Часть II. Использование функций вформу

Рис. 5.5. Данная формула используется для преобразования заданного числа в порядковое числительное

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

Извлечение первого слова строки

Для того чтобы извлечь первое слово строки, в формуле необходимо задать поиск позиции первого пробела, после чего эта информация используется как аргумент функции ЛЕВСИМВ.Приведенная ниже формула выполняет именно эти действия:

=ЛЕВСИМВ(А1;НАЙТИ(" ";А1)-1)

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

=ЕСЛИ(ЕОШ(НАЙТИ(" ";А1));А1;ЛЕВСИМВ(А1;НАЙТИ("

Извлечение последнего слова строки

A

; шшшщшш

 

щNumber '

Ordinal

 

 

2 '

1

1st

 

 

"з""

4

4th

 

 

~А~

7

7th

 

 

s :

10

10th

 

 

в.

13

13th

> !

тп

16

16th

'"§""'

19

19th

4

1

Ж:

22

22nd

 

10-

25

25th

 

 

ii,

28

28th

 

 

'Yfi

31

31st

 

 

13;

34

34th

 

 

14'"'

37

37th

-1

Is"!

40

40th

 

 

"\f"

43

43rd

 

 

46

46th

J

'181

49

49th

"is"

52

52nd

20'

 

Г"hi

1

 

М 4~rH\shec*l

 

Извлечение последнего слова строки— более сложная задача, поскольку функция НАЙТИ работает только слева напра-

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

=ПРАВСИМВ(А1;ДЛСТР(А1)-НАЙТИ("*";ПОДСТАВИТЬ(А1;" ";"*";ДЛСТР(А1)- ДЛСТР(ПОДСТАВИТЬ(А1;" ";"")))))

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

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

НАЙТИ("*";ПОДСТАВИТЬ(А1;" ";"*";ДЛСТР(А1)- ДЛСТР(ПОДСТАВИТЬ(А1;" ";""))))))

Глава 5. Работа с текстом

139