В этой статье я кратко расскажу о том, как создал неплохой бесплатный генератор линейных комбинаций фраз из слов в Excel, и покажу, как им пользоваться.
Предыстория
Периодически возникает потребность произвести операцию комбинирования различных слов и фраз друг с другом.
Сфер применения несколько:
- PPC-специалисты перемножают списки, чтобы составить всевозможные ключевые слова для Яндекс.Директа или Google Ads
- Вебмастера генерируют искусственные тексты для однотипных страниц, используя инструменты как составитель предложений.
- А кто-то использует перемножение списков для генерации бредовых фраз для дурашливых сайтов.
Онлайн-“перемножатели” и их недостатки
Среди специалистов популярны онлайн-генераторы фраз. Их задача — «перемножать» списки заданных слов друг на друга, сохраняя последовательность слов. Пользовался ими и я.
Однако у онлайн-инструментов есть свои минусы:
- Для них нужен интернет — а он все еще не всегда и везде доступен. А кому-то, наоборот, от него хочется сбежать :)
- Зачастую количество столбцов для ввода ограничено и нельзя добавить самостоятельно столбец для ввода
- Не всегда доступна возможность использовать собственный разделитель
- Вывод финален и его нельзя изменить.
- Если вы допустили ошибку, зачастую все списки придется вводить заново, т.к. они не сохраняются
Перемножение списков слов в Excel
Поскольку не хотелось становиться заложником проблем, связанных с онлайн-перемножалками слов, я решил сделать собственный генератор словосочетаний. Он доступен бесплатно как часть моей надстройки для работы с семантическим ядром — !SEMTools для Excel.


Алгоритмически процедура довольно проста – нужно просто составить все комбинации сочетаний всех значений в столбцах.
Вы не ограничены количеством столбцов для комбинации и выбором разделителей. Единственная ваша задача – чтобы количество комбинаций не превысило максимум, который можно вывести на лист – 1048576 строк.
Для корректной работы макроса (без неожиданных результатов) есть определенные легко выполнимые требования:
- Данные нужно вводить всегда с первой строки (A1, B1, C1)
- В столбцах не должно быть полностью пустых ячеек – инструмент остановится на последней непустой ячейке в столбце
- Если среди столбцов будут пустые, макрос возьмет на вход данные до первого пустого столбца
Примеры составления комбинаций
Перемножить слова через единый разделитель
На заметку: если вы хотите сделать наличие слов из определенного столбца опциональным (т.е. производить комбинации и без них), просто добавьте ячейку с единственным пробелом.

Перемножить слова через собственные разделители
Чтобы использовать собственные разные разделители между словами, нужно их просто вставить в ячейку между основными комбинируемыми сущностями. Префикс и суффикс также можно вставлять – в первый и последний столбец соответственно.
Вы наверняка заметили, что после комбинирования значения остаются в разных столбцах. Это легко поправляется инструментом «объединить диапазон по горизонтали». Смотрите пример:
