Мастер класс «Извлечение характеристик из строки»

Для сотрудников отдела маркетинга.

Постановка задачи.

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

Т. е. у нас есть файл следующего вида:

и нам нужно получить файл следующего вида:

Функции.

Добиться этого можно с применением следующих функций Эксель:

«Найти» - ищет позицию указанного символа в строке,

«ДлСтр» - возвращает кол-во символов в строке,

«ПравСимв» - возвращает указанное число символов с конца строки

«ЛевСимв» - возвращает указанное число символов с начала строки.

Разделители.

Смотрим – какие символы разделяют различные виды характеристик. В нашем примере разделителем является символ «/ » (косая черта и пробел). Кроме этого, первая характеристика отделена от наименования пробелом. Пробел не самый лучший в данном примере символ – разделитель, поскольку встречается и наименовании и причем неопределенное число раз (может встретиться и два раза и три и четыре и если ориентироваться на пробелы, то мы не сможем гарантированно разложить характеристики по нужным колонкам).

Решение.

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

НЕ нашли? Не то? Что вы ищете?

1) Для начала, определим позицию первого надежного разделителя «/ ». Для этого в первой из добавленных ячеек пишем формулу «=найти("/ ";B3)» и нажимаем Enter.

При этом программа выдаст результат.

2) Извлечение строки с характеристиками.

2.1) Далее, извлекаем строку, содержащую только нужные нам характеристики. Для этого в следующем столбце пишем формулу «=ПравСимв(B3;ДлСтр(B3)-C3)». Эта формула возвращает часть строки наименования, содержащую текст с характеристиками. Поскольку берем текст с конца строки, то в качестве количества знаков мы указываем «Длина строки» минус «позиция разделителя».

Нажимаем «Enter» и видим результат.

2.2) Этот результат подошел бы нам, но он не включает в себя первую из характеристик (давление – 160Мбар). Поэтому придется несколько доработать наши формулы.

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

В данном случае, возьмем дополнительные 10 символов, для чего в нашу формулу допишем «+10» (получится формула «=ПРАВСИМВ(B3;ДЛСТР(B3)-C3+10)»).

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

2.3) Теперь из неё аналогичным же образом получим строку, не содержащую лишних символов.

Для этого в следующем столбце сначала определяем позицию разделителя (на этот раз пробела – « » ).

А затем, в следующем столбце получаем нужную нам строку. При этом используется формула аналогичная той, что использовалась выше («=ПРАВСИМВ(D3;ДЛСТР(D3)-E3)») . Главное при этом не забыть поменять ячейки, на которые ссылается формула, и убрать добавление лишних 10 символов «+10».

Задание 1.

Возьмите приложенный Эксель файл и выведите в нем в отдельный столбец текст, содержащий только данные по характеристикам товаров.

Покажите результат инструктору.

3) Раскладывание характеристик по столбцам.

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

3.2) В следующей колонке выводим первую из наших характеристик. Для этого, пишем в ней формулу «=ЛевСимв(F3;G3-1)». На этот раз нам нужны символы с начала строки, поэтому мы пользуемся функцией «ЛевСимв». «-1» добавляем, чтобы лишняя косая черта не попадала в результирующее значение

.

3.3) В следующей колонке выводим строку с оставшимися характеристиками. Для этого пишем в ней формулу аналогичную той, что была в пункте (2.3) «=ПРАВСИМВ(F3;ДЛСТР(F3)-G3)».

Задание 2.

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

Покажите результат инструктору.

3.4) Формулы следующих ячеек можно просто скопировать с последних трёх ячеек. Для этого выделяем их хватаем за правый нижний угол и тянем вправо.

Протягивая дальше, мы получаем в разных колонках нужные нам характеристики.

Задание 3.

Выведите в отдельные колонки все оставшиеся характеристики товара.

Покажите результат инструктору.

4) Протягиваем по всем товарам. имеющим аналогичный набор характеристик.

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

Таким образом, получаем характеристики, разделенные по отдельным колонкам.

Теперь скрываем лишние ячейки и оставляем только ячейки с характеристиками.

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

Задание 4.

Выполните задания 1-3 для второго приложения. Покажите результат инструктору.

Задание 5.

После последней колонки выведите наименование товара, не содержащее характеристик. Для этого используйте функции «ЛевСимв», «ДлСтр» и данные из уже созданных колонок. Покажите результат инструктору.

Подготовлено Прохором Лейкиным. 2012.04.13