Формируем базу email с помощью макроса Excel

Формируем базуПару дней назад ко мне обратился мой клиент с нестандартной просьбой. У него был файл Excel с данными его потенциальных клиентов (адреса, телефоны, email и др.), а ему было необходимо создать базу email из этого файла для дальнейшей отправки коммерческого предложения. Сложность ещё состоит в том, что рассылка должна создаваться в ручную, а большинство почтовых сервисов ограничивают количество email адресов в одном письме до 20 штук. К тому-же если адресов более 10-15, то письмо автоматически отметится как спам. Поэтому рекомендованное количество адресов около 15 штук в одном письме. В итоге из сотен строк и столбцов в файле Excel необходимо выбрать только email и сгруппировать по 15 штук, при этом не забыв после каждого адреса добавить 2 символа — запятую и пробел. Формируем базу email. В итоге это должно выглядеть так: email1@mail.com, email2@mail.com, email3@mail.com.

Пишем функции.

excelВариантов довольно много для цифровых данных, но вот для текста функций Excel не достаточно. Конечно можно это сделать в несколько этапов, выбрать email`ы с помощью функции ВПР, потом использовать функцию СЦЕПИТЬ и т.д., но это очень длительно и мучительно. В итоге я решил написать простой макрос, который сделает все операции сразу. Для начала необходимо подготовить данные. Копируем столбец со всеми email`ами на отдельный лист и группируя по 15 штук добавляем значение для поиска (я выбрал такие: первый, второй, третий и т.д.).

Таким образом мы задаём структуру группировки всех адресов. Далее нажимаем комбинацию клавиш Alt+F11 или с помощью кнопки Visual Basic на вкладке Разработчик (Developer) открываем редактор Visual Basic. В открывшемся окне нам необходимо добавить новый модуль Меню INSERT — Module в котором и будет написан текст макроса. Функцию мы назовём MergeIf. Далее набираем такой текст: (для вашего удобства я сохранил текст макроса в файл, который можно скачать по этой ссылке). В итоге у вас должно быть вот такое окно, как на рисунке ниже. excelПосле этого сохраним наш документ и переходим на лист с подготовленными данными. Тут в пустом столбце добавляем в каждой строке слова, которыми мы ранее обозначили группы email адресов (у меня это такие: первый, второй, третий и т.д.) В соседнем столбце напротив каждого из слов и будут наши связки адресов.

ВНИМАНИЕ: 

слова первый, второй, третий и т.д. должны быть написаны точно так-же как и в начале таблицы! Каждый символ имеет роль для макроса. Рекомендую писать все слова маленькими буквами, чтобы избежать ошибок. Итак, ставим курсор в пустую ячейку рядом со словом «первый» и добавляем функцию (необходимая нам функция будет в разделе «назначенные пользователем» под именем MergeIf). Далее у вас откроется окно, в котором будет необходимо задать 3 значения.

  1. указать диапазон из которого выбираются email адреса;
  2. указать диапазон данных для проверки (наши первый, второй, третий и т.д.);
  3. указать конкретное условие выборки (первый, второй, третий и т.д.)

автоматизация бизнеса

В итоге мы получим необходимый нам список адресов, которые будут разделены между собой запятыми и пробелами. Точно так-же повторяем для других диапазонов адресов меняя лишь условие в третьем пункте. Для того, чтобы формулу можно было скопировать и изменить только одно условия, а также чтобы диапазоны выборок в первом и втором условии не изменились можно дописать значки $ (как на скриншоте) либо при выборе диапазона нажать клавишу F4.

Таким образом мы подготовили необходимый нам для рассылки список email адресов сгруппировав его и добавив необходимые символы. Этот макрос можно использовать и для других целей. А ещё диапазон его применения можно расширить добавив несколько условий выборки (например выбрать в одну строку email, которые принадлежат сразу 2-м компаниям или 2 адреса, которые принадлежат одной компании). Если вашей компании необходимо автоматизировать свою работу с помощью Excel — обратитесь к нашим специалистам и мы с радостью поможем вам, а заодно и научим 🙂 ведь возможности Excel поистине безграничны!

Ronald

Добавить комментарий