Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.93/76: Рейтинг темы: голосов - 76, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 4

Генерация всех возможных словосочетаний из столбцов

31.03.2015, 23:55. Показов 15801. Ответов 22
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте,
Не могли бы вы дать подсказку по моей проблеме?

Суть такая: есть таблица с несколькими столбцами, в каждом столбце несколько слов. Задача сгенерировать все возможные словосочетания по типу Рандомное_Слово_Столбца_1 + Рандомное_Слово_Стобца_2 + Рандомное_Слово_Столбца_3 итд итп
Вот пример картинки с таблицей:



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


Заранее спасибо!!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.03.2015, 23:55
Ответы с готовыми решениями:

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

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

Генерация всех возможных чисел из заданных
Всем привет, господа программисты. Я в теме программирования ну очёнь зелёный и только начинаю постигать азы данного искусства. Прошу...

22
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.04.2015, 00:27
От самОй рекламы житья нет, так вы еще этот вопрос на нескольких форумах разместили!
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
01.04.2015, 01:05
Лучший ответ Сообщение было отмечено md416 как решение

Решение

Впрочем вот - макрос, который работает с выделенным диапазоном (верхняя картинка) и создает список на новом листе (нижняя картинка).

3
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 4
01.04.2015, 20:59  [ТС]
Огромное спасибо!! Это то, что я искал

Позвольте обнаглеть и задать ещё дополнительный вопрос:
А как сделать, что бы ещё дополнительно генерировалось 1+2 и 1+3: купить слона, купить дешево, продать оптом, продать коня?
Видимо, это не сложно для экспертов?)

Добавлено через 1 час 41 минуту
макрос не работает почему-то
Где-то в районе s(n, 0) = Mid$(d, 2) пишет "error 13: Type Mismatch"
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
02.04.2015, 00:17
Лучший ответ Сообщение было отмечено md416 как решение

Решение

Цитата Сообщение от md416 Посмотреть сообщение
макрос не работает почему-то
Приложите книгу с данными и макросом, укажите, какой диапазон выбираете.

Добавлено через 6 минут
Цитата Сообщение от md416 Посмотреть сообщение
как сделать, что бы ещё дополнительно генерировалось 1+2 и 1+3: купить слона, купить дешево, продать оптом, продать коня?
Делал недавно на другом форуме - все сочетания из выделенного диапазона типа
сл1сл2сл3сл4
сл5сл6сл7сл8
сл9сл10сл11
сл12
Результат на новом листе.
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Sub bb()
Dim i&, j&, n&, p&, q&, x, v(), s$
v = Selection.Value
ReDim slova$(0 To UBound(v) * UBound(v, 2))
For Each x In v
  If Not IsEmpty(x) Then slova(i) = Trim$(Replace$(x, ChrW$(160), "")): i = i + 1
Next
ReDim v(0 To 2 ^ i - 1, 1 To 1)
For i = 3 To UBound(v)
  j = i 'число для разбора на биты
  n = 0 'номер слова
  p = 0 'число единиц в двоичном представлении
  s = ""
  Do While j
    If j Mod 2 Then s = s & " " & slova(n): p = p + 1
    j = j \ 2
    n = n + 1
  Loop
  If p > 1 Then v(q, 1) = Mid(s, 2): q = q + 1
Next
Sheets.Add.Cells(1, 1).Resize(q).Value = v
 
End Sub
1
0 / 0 / 0
Регистрация: 31.03.2015
Сообщений: 4
02.04.2015, 22:47  [ТС]
Супер! Огромное спасибо!!
Какой замечательный подход к новичкам на этом форуме, не то что у нас на доче...)

Но в Вашем макросе всё же делаются словосочетания из выделенного диапозона, а как сделать, что бы из выбранных столбцов? То есть в Вашем примере это в результате было бы не сл1+сл2+сл3+сл4, а сл1+сл3, сл1+сл4
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
04.04.2015, 09:10
Цитата Сообщение от md416 Посмотреть сообщение
Но в его варианте всё ограничено только 11ю строками, а не любым выбранным диапозоном
Исправил на 20 или этого недостаточно?
Вложения
Тип файла: rar Слова20.rar (15.6 Кб, 144 просмотров)
2
1 / 1 / 0
Регистрация: 01.04.2015
Сообщений: 24
04.04.2015, 09:32
а как вы саму кнопку (нажми) сделали?
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
04.04.2015, 09:43
Это что ли нужно?
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Sub TwoWords()
Dim v(), i&, j&, k&, n&, p&, q&
  v = Selection.Value
  ReDim m&(1 To UBound(v, 2))
  With WorksheetFunction
    For i = 1 To UBound(m)
      m(i) = .CountA(.Index(v, 0, i))
    Next
    ReDim s$(1 To .Average(m) ^ 2 * .Combin(UBound(m), 2), 0 To 0)
  End With
  For i = 1 To UBound(m) - 1
    For j = i + 1 To UBound(m)
      For k = 1 To m(i)
        For q = 1 To m(j)
          n = n + 1
          s(n, 0) = v(k, i) & " " & v(q, j)
  Next q, k, j, i
  Worksheets.Add.Cells(1, 1).Resize(n).Value = s
Debug.Print UBound(s); n
End Sub
0
1 / 1 / 0
Регистрация: 01.04.2015
Сообщений: 24
04.04.2015, 10:09
Цитата Сообщение от Казанский Посмотреть сообщение
Sub TwoWords()
...
End Sub
а это куда вставлять или как использовать ???
0
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 16
07.11.2015, 11:51
Где посмотреть что надо изменить в макросе что бы увеличить количество строк или столбцов (надо очень много) ?
0
07.11.2015, 12:00

Не по теме:

Если прочитаете п.5.8. Правил форума, то поймете о чем шла речь.

0
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 16
21.01.2016, 15:29
Цитата Сообщение от m-ch Посмотреть сообщение
Исправил на 20 или этого недостаточно?
А не могли бы сделать 200 строк, а не 20?
0
6082 / 1327 / 195
Регистрация: 12.12.2012
Сообщений: 1,023
21.01.2016, 16:07
olegator13god, подскажите, что вас не устраивает в программе Как сцепить каждую ячейку столбца А с каждой ячейкой ст. B (все комбинации)?

В указанной программе нет ограничений на количество строк (как, кстати, и на количество столбцов).

С уважением,
Аксима
0
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 16
21.01.2016, 20:27
Цитата Сообщение от Аксима Посмотреть сообщение
olegator13god, подскажите, что вас не устраивает в программе Как сцепить каждую ячейку столбца А с каждой ячейкой ст. B (все комбинации)?

В указанной программе нет ограничений на количество строк (как, кстати, и на количество столбцов).

С уважением,
Аксима
мне необходимо склеивать вот таким принципом
а+б+в+г
а+б+в
а+б
а+в+г
б+в+г
и т.д.
т.е. каждая с каждной и все со всеми
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
21.01.2016, 20:43
olegator13god, пример Ваших данных в виде xls приложите
0
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 16
22.01.2016, 08:27
Цитата Сообщение от m-ch Посмотреть сообщение
olegator13god, пример Ваших данных в виде xls приложите
прикладываю, спасибо.
Вложения
Тип файла: rar гор.rar (26.2 Кб, 87 просмотров)
0
6180 / 945 / 313
Регистрация: 25.02.2011
Сообщений: 1,381
Записей в блоге: 1
22.01.2016, 09:27
По Вашим данным, количество возможных вариантов сочетания слов:
без пропуска слов - 2 276 142 120 (4*177*27*98*3*81*5)
с пропуском слов - 4 855 213 440 (5*178*28*99*4*82*6)
Поправить программу не сложно, измените значение константы m в макросе до нужного значения и поправьте формулы в первой строке, вместо
Code
1
=МАКС(СЧЁТЗ(A2:A21)+$L1;1)
нужно указать
Code
1
=МАКС(СЧЁТЗ(A2:A300)+$L1;1)
Но такое количество вариантов не поместится на лист, да и в файл сохранить невозможно
необходимо задать ограничения: например не более стольких то слов
Но придется менять код программы
1
0 / 0 / 0
Регистрация: 05.11.2015
Сообщений: 16
22.01.2016, 11:52
Спасибо огромное ! все работает !
0
0 / 0 / 0
Регистрация: 13.03.2019
Сообщений: 1
13.03.2019, 15:28
Здравствуйте! Подскажите, пожалуйста, как в этом макросе прописать, чтобы словосочетания сразу проверялись и выводились только те, которые не длинее 20 символов (<=20), считая пробелы между словами?
Заранее спасибо!
Вложения
Тип файла: zip primer.zip (23.4 Кб, 30 просмотров)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
13.03.2019, 15:28
Помогаю со студенческими работами здесь

Генерация всех возможных комбинаций из элементов массива
Всем привет, совсем недавно зарегистрировался на форуме, начал потихоньку изучать Pascal ABC, поэтому прошу помочь мне с написанием кода. ...

Генерация всех возможных вариантов строки по маске
Возможно кто сталкивался, или хотя бы алгоритм подскажет. Задача такая: пользователь вводит маску, например:$$$hello№№, где $ - любая...

Генерация всех возможных комбинаций слова путем манипуляций с регистрами букв
Привет всем! Появилась не стандартная задачка написать хитрый алгоритм. Вводим слово для примера газ (слово в нижнем регистре). ...

Генерация списка всех возможных расстановок максимального количества ладей на доске N x N клеток
Добрый вечер, я в хаскелле новичок помогите пожалуйста решить задачу о расстановке ладьей на шахматной доске. Для кого-то может быть...

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


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru