четверг, 2 июня 2011 г.

Применение текстовых функций


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

Выполнить это можно используя текстовые функции НАЙТИ (возвращает позицию заданного символа в тексте), ЛЕВСИМВ (возвращает заданное количество символов сначала текста, если конечно это не арабская вязь), ПСТР (выбирает в тексте заданное количество символов, начиная с указанной позиции).
Итак, для начала выделим номер счета. Для этого используем ниже приведенную конструкцию из формул.
=ЛЕВСИМВ(C2;НАЙТИ("/";C2;1)-1)
Здесь функция НАЙТИ используется для определения количества знаков входящих в номер счета, естественно должно выполняться условие что номер счета и дата всегда будут разделены слешем "/". Если это не выполняется надо поискать другие надежные признаки для разделения текста. Задача существенно упростится если количество знаков в номере счета всегда одинаково, но мы не ищем легких путей. От номера позиции слеша надо отнять "1", чтобы сам слеш в номер счета не попадал. Имеем результат в столбце "D".
Теперь займемся самой датой. Для выделения даты можно использовать функцию ПСТР. Она позволяет выбрать определенное количество знаков из середины текста. При этом количество знаков можно задать и больше реального ( вдруг где то дату написали в формате ДД.ММ.ГГГГ) но это возможно если после даты нет текста. Формула будет выглядеть так:
=ДАТАЗНАЧ(ПСТР(C2;НАЙТИ("/";C2;1)+1;255))
Здесь функции ПСТР может возвратить до 255 знаков начиная от позиции слеша +1, а реально возвращает столько знаков сколько есть. Однако возвращает она, дату в текстовом формате. Для ее преобразования в числовой код Excel используется функция ДАТАЗНАЧ, а чтобы совсем была похожа на дату надо ячейкам в столбце "D" задать формат даты.


Далее - сложный текст...

Комментариев нет:

Отправить комментарий