Теоретические сведения

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

Функция ТЕКСТ преобразует число в текстовую строку с заданным форматом. Синтаксис: =ТЕКСТ(значение;формат).

Аргумент значение может быть любым числом, формулой или ссылкой на ячейку. Аргумент формат определяет, в каком виде отображается возвращаемая строка. Для задания необходимого формата можно использовать любой из символов форматирования за исключением звездочки. Использование формата «Общий» не допускается. Например, следующая формула возвращает текстовую строку 25,25: =ТЕКСТ(101/4;"0,00").

Функция РУБЛЬ преобразует число в строку. Однако РУБЛЬ возвращает строку в денежном формате с заданным числом десятичных знаков. Синтаксис: =РУБЛЬ(число;число_знаков)

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

Функция ДЛСТР возвращает количество символов в текстовой строке и имеет следующий синтаксис: =ДЛСТР(текст)

Аргумент текст должен быть строкой символов, заключенной в двойные кавычки, или ссылкой на ячейку. Например, следующая формула возвращает значение 7: =ДЛСТР("прибыль"). Функция ДЛСТР возвращает длину отображаемого текста или значения, а не хранимого значения ячейки, при этом она игнорирует незначащие нули.

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

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

В Excel имеются три функции, позволяющие изменять регистр букв в текстовых строках: ПРОПИСН, СТРОЧН и ПРОПНАЧ. Функция ПРОПИСН преобразует все буквы текстовой строки в прописные, а СТРОЧН – в строчные. Функция ПРОПНАЧ заменяет прописными первую букву в каждом слове и все буквы, следующие непосредственно за символами, отличными от букв; все остальные буквы преобразуются в строчные.

Функции имеют следующий синтаксис:

=ПРОПИСН(текст)

=СТРОЧН(текст)

=ПРОПНАЧ(текст)

При работе с уже существующими данными довольно часто возниает ситуация, когда нужно модифицировать сами исходные значения, к которым применяются текстовые функции. Можно ввести функцию в те же самые ячейки, где находятся эти значения, поскольку введенные формулы заменят их. Но можно создать временные формулы с текстовой функцией в свободных ячейках в той же самой строке и скопировать результат в буфер обмена. Чтобы заменить первоначальные значения модифицированными, выделите исходные ячейки с текстом, в контекстном меню, вызываемом правой кнопкой мыши, выберите команду «Специальная вставка», установите переключатель «Значения» и нажмите кнопку <ОК>. После этого можно удалить временные формулы.

Функция СОВПАД сравнивает две строки текста на полную идентичность с учетом регистра букв. Различие в форматировании игнорируется. Синтаксис: =СОВПАД(текст1;текст2).

Если аргументы текст1 и текст2 идентичны с учетом регистра букв, функция возвращает значение ИСТИНА, в противном случае – ЛОЖЬ. Аргументы текст1 и текст2 должны быть строками символов, заключенными в двойные кавычки, или ссылками на ячейки, в которых содержится текст.

В категории Текстовые есть функция СЦЕПИТЬ, которая соединяет содержимое нескольких ячеек (до 255) в одно целое, позволяя комбинировать их с произвольным текстом. Синтаксис:

=СЦЕПИТЬ(текст1;текст2;…).

Вот, например, как можно собрать ФИО в одну ячейку из трех с добавлением пробелов: = СЦЕПИТЬ(А1; ″″;B1; ″″;C1) (рис. 35). Полным аналогом данной функции является оператор сцепления строк &.

 

Рис. 35. Пример использования оператора сцепления строк

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

 

Рис. 36. Пример использования функции извлечения символов

Функции ЛЕВСИМВ и ПРАВСИМВ имеют одинаковый синтаксис:

= ЛЕВСИМВ(текст; число_знаков) – возвращает первые начальные знаки текстовой строки;

= ПРАВСИМВ(текст;число_знаков)– возвращает заданное число последних знаков текстовой строки.

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

=ЗАМЕНИТЬ(старый_текст;нач_поз;число_знаков;новый_текст).

=ПОДСТАВИТЬ(текст;старый_текст;новый_текст;номер_вхождения)

Например, результатом формулы =ЗАМЕНИТЬ(«Отчет за ян-варь»;10;6; «апрель»)будет строка «Отчет за апрель».

Задача разделения столбца с данными на несколько отдельных столбцов решается с помощью Мастера Текстов.

Например, ФИО записаны в одном столбце (а надо в трех отдельных, чтобы сортировать по имени), полное описание товара задано в одном столбце (а надо отдельный столбец под фирму-изготовителя, отдельный под модель и т.д.).

Порядок действий для того, чтобы разделить данные на несколько столбцов:

- Выделите ячейки, которые будем делить и выберите в меню Данные → Текст по столбцам. Появится окно Мастера текстов (рис. 37).

 

Рис. 37. Окно Мастера текстов

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

- На втором шаге Мастера, если выбран формат с разделителями. необходимо указать какой именно символ является разделителем.

Рис. 38. Диалоговое окно Мастера текстов (Выбор символа разделителя)

- На третьем шаге для каждого из получившихся столбцов, выделяя их предварительно в окне Мастера, необходимо выбрать формат:

- общий – оставит данные как есть, подходит в большинстве случаев;

- дата – необходимо выбирать для столбцов с датами, причем формат даты (день-месяц-год, месяц-день-год и т.д.) уточняется в выпадающем списке;

- текстовый – для чисто текстовой информации.

- Осталось нажать кнопку <Готово>, утвердительно ответить на вопрос о замене конечных ячеек и данные будут разделены .

 

Рис. 39. Результат разделения данных на три столбца

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

Excel 2007 (учитывая российские региональные настройки) позволяет вводить дату разными способами:

- "Классическая" форма 3.04.2010;

- сокращенная форма 3.04.10;

- с использованием дефисов 3-04-10;

- с использованием дроби 3/04/10.

Внешний вид даты в ячейке может быть очень разным (с годом или без, месяц числом или словом и т.д.) и задается в меню Формат – Ячейки.

Время вводится в ячейки с использованием двоеточия. Например, 16:45, можно дополнительно уточнить количество секунд, вводя их также через двоеточие:16:45:30, можно указывать дату и время вместе через пробел.

Любую дату Excel хранит и обрабатывает как число с целой и дробной частью. Это можно увидеть, если выделить ячейку с датой и установить для нее Общий формат (меню Формат - Ячейки – вкладка Число - Общий), например, на рис. 40 показано как выглядит 8.10.2006 15:42.

 

Рис. 40. Внутренний формат
представления времени в ячейке

Целая часть числа (38998) – это количество дней, прошедших с 1 января 1900 года (взято за точку отсчета) до текущей даты. А дробная часть (0,65417), соответственно, доля от суток (1сутки = 1,0). Из этих фактов следуют два чисто практических вывода:

- Excel не умеет работать (без дополнительных настроек) с датами ранее 1 января 1900 года;

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

Можно вычислить, сколько дней прошло между двумя датами, например = «24/01/10»-«19/01/10». Можно прибавлять к дате или вычитать из нее определенное количество дней.

Для быстрого ввода номеров кварталов, названий дней и месяцев можно воспользоваться автозаполнением и списками. Для ввода в ячейку текущей даты как константы можно воспользоваться сочетанием клавиш [Ctrl] + [Ж].

Если скопировать ячейку с датой (протянуть за правый нижний угол ячейки), удерживая правую кнопку мыши, то можно выбрать, как именно копировать выделенную дату (рис. 41).

 

Рис. 41. Выбор способа заполнения даты

Категория функций работы с датами и временем позволяет выполнять разнообразные преобразования над соответствующими данными. Всего в категории «Дата и время» имеется 20 функций.

Таблица.

Функции категории «Дата и время».

Функция Описание
ДАТА Возвращает заданную дату в числовом формате.
ДАТАЗНАЧ Преобразует дату из текстового формата в числовой формат.
ДЕНЬ Преобразует дату в числовом формате в день месяца.
ДНЕЙ360 Вычисляет количество дней между двумя датами на основе 360-дневного года.
ДАТАМЕС Возвращает дату в числовом формате, отстоящую на заданное число месяцев вперед или назад от начальной даты.
КОНМЕСЯЦА Возвращает дату в числовом формате для последнего дня месяца, отстоящего вперед или назад на заданное число месяцев.
МЕСЯЦ Преобразует дату в числовом формате в месяцы.
ЧАС Преобразует дату в числовом формате в часы.
МИНУТЫ Преобразует дату в числовом формате в минуты.
СЕКУНДЫ Преобразует дату в числовом формате в секунды.
ЧИСТРАБДНИ Возвращает количество рабочих дней между двумя датами.
ТДАТА Возвращает текущую дату и время в числовом формате. Дата автоматически будет обновляться при открытии файла.
ВРЕМЯ Возвращает заданное время в числовом формате.
ВРЕМЗНАЧ Преобразует время из текстового формата в числовой формат.
СЕГОДНЯ Возвращает текущую дату в числовом формате.
ДЕНЬНЕД Преобразует дату в числовом формате в день недели.
НОМНЕДЕЛИ Преобразует числовое представление в число, которое указывает, на какую неделю года приходится указанная дата.
РАБДЕНЬ Возвращает дату в числовом формате, отстоящую вперед или назад на заданное количество рабочих дней.
ГОД Преобразует дату в числовом формате в год.
ДОЛЯГОДА Возвращает долю года, которую составляет количество дней между начальной и конечной датой.

 

Если нужно, чтобы в ячейке всегда была автоматически обновляемая сегодняшняя дата нужно воспользоваться функцией СЕГОДНЯ(). Значение в ячейке будет обновляться при открытии файла. Функцию СЕГОДНЯ можно использовать для вставки не только текущей, но и вообще любой автоматически обновляемой даты. Для этого надо после функции ввести со знаком плюс или минус соответствующее число дней. Например, для вставки вчерашней даты достаточно ввести -1.

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

Для вычисления дня недели любой произвольной даты можно использовать функцию ДЕНЬНЕД(А;В), где A – дата, для которой определяется день недели (дату можно вводить обычным порядком); В – тип отсчета дней недели: 1 – отсчет дней недели начинается с воскресенья; 2 – отсчет дней недели начинается с понедельника.

Узнать, каким днем неделя является текущее число, можно используя формулу: =ДЕНЬНЕД(СЕГОДНЯ()).

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

=ЕСЛИ(ДЕНЬ(СЕГОДНЯ())=1; ″Начало месяца″;″″).

Некоторые полезные функции категории «Дата и время» доступны, если установить надстройку Пакет анализа. Для этого нужно нажать кнопку <Office>, зайти в Параметры Excel и выбрать (поставить галочку) приложение «Пакет анализа».

Наиболее полезной из новых функций является функция
КОНМЕСЯЦА(начальная_дата; число_месяцев). Положительное значение аргумента число_месяцев означает будущую дату, отрицательное значение означает прошедшую дату. Функция возвращает последнюю дату месяца, который отстоит на заданное число месяцев от текущей даты.

При вычислении количества рабочих дней между двумя датами ненужно учитывать субботы с воскресеньями и праздники. Для такого расчета лучше воспользоваться функцией ЧИСТРАБДНИ из надстройки Пакета анализа. В качестве аргументов этой функции необходимо указать начальную и конечную даты и ячейки с датами выходных (праздников).

 

Рис. 42. Вычисление количества рабочих дней между двумя датами

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