Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Генерация всевозможных комбинаций согласно заданным условиям - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Генерация всевозможных комбинаций согласно заданным условиям (Формулы/Formulas)
Генерация всевозможных комбинаций согласно заданным условиям
Алина_ Дата: Понедельник, 12.01.2015, 19:20 | Сообщение № 1
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Добрый День Всем.

Столкнулась с проблемой, которую сама не могу решить. Прошу помощь.

Задача- сгенерировать все возможные комбинации, согласно выбранным условиям.

Условие- указать название колонок и количество значений в каждой колонке. Например, комбинация будет состоять из одного значения в кол1, двух значений из кол2, двух значений из кол3. Итого, комбинация состоит из 5 значений.

Поиском воспользовалась. Ответа не нашла, т.к. комбинация состоит из неравного количества значений в колонках.

Заранее благодарю за помощь.
Алина
К сообщению приложен файл: 7003521.xlsx (11.8 Kb)
 
Ответить
СообщениеДобрый День Всем.

Столкнулась с проблемой, которую сама не могу решить. Прошу помощь.

Задача- сгенерировать все возможные комбинации, согласно выбранным условиям.

Условие- указать название колонок и количество значений в каждой колонке. Например, комбинация будет состоять из одного значения в кол1, двух значений из кол2, двух значений из кол3. Итого, комбинация состоит из 5 значений.

Поиском воспользовалась. Ответа не нашла, т.к. комбинация состоит из неравного количества значений в колонках.

Заранее благодарю за помощь.
Алина

Автор - Алина_
Дата добавления - 12.01.2015 в 19:20
JayBhagavan Дата: Вторник, 13.01.2015, 10:53 | Сообщение № 2
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 188
Репутация: 27 ±
Замечаний: 0% ±

Excel 2010
Алина_, в примере лучше всего указывать как Вы хотите видеть результат, чтобы было понятно, что Вы подразумеваете под комбинацией. И Ваш вопрос формулами если можно решить, то кол-во протягиваемых, к примеру, формул Вы будете сами рассчитывать. Эта тема ближе к разделу по макросам.


Языком ты или построишь жизнь,или разрушишь ее до основания.Думайте что говорите.(с)А.Хакимов
 
Ответить
СообщениеАлина_, в примере лучше всего указывать как Вы хотите видеть результат, чтобы было понятно, что Вы подразумеваете под комбинацией. И Ваш вопрос формулами если можно решить, то кол-во протягиваемых, к примеру, формул Вы будете сами рассчитывать. Эта тема ближе к разделу по макросам.

Автор - JayBhagavan
Дата добавления - 13.01.2015 в 10:53
MCH Дата: Вторник, 13.01.2015, 11:23 | Сообщение № 3
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Похожая тема: http://www.excelworld.ru/forum/2-335-1

Если нужно другое решение, то приложите пример того, что нужно.
 
Ответить
СообщениеПохожая тема: http://www.excelworld.ru/forum/2-335-1

Если нужно другое решение, то приложите пример того, что нужно.

Автор - MCH
Дата добавления - 13.01.2015 в 11:23
Алина_ Дата: Вторник, 13.01.2015, 20:48 | Сообщение № 4
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
МСН, спасибо за полезную ссылку.
В данном случае не подходит, т.к. из каждой колонки выбирается только по одному значению.
Пример отредактировала.

Спасибо за помощь,
Алина
К сообщению приложен файл: 6146178.xlsx (12.6 Kb)
 
Ответить
СообщениеМСН, спасибо за полезную ссылку.
В данном случае не подходит, т.к. из каждой колонки выбирается только по одному значению.
Пример отредактировала.

Спасибо за помощь,
Алина

Автор - Алина_
Дата добавления - 13.01.2015 в 20:48
MCH Дата: Среда, 14.01.2015, 01:00 | Сообщение № 5
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Задачу можно решить на макросах, но даже с такой небольшой выборкой исходных данных получается 450 вариантов генераций (=ЧИСЛКОМБ(3;1)*ЧИСЛКОМБ(6;2)*ЧИСЛКОМБ(5;2))
Каково количество исходных данных?

Если имеется только 5 столбцов с числами, то можно сделать небольшой макрос по составлению всех сочетаний.
 
Ответить
СообщениеЗадачу можно решить на макросах, но даже с такой небольшой выборкой исходных данных получается 450 вариантов генераций (=ЧИСЛКОМБ(3;1)*ЧИСЛКОМБ(6;2)*ЧИСЛКОМБ(5;2))
Каково количество исходных данных?

Если имеется только 5 столбцов с числами, то можно сделать небольшой макрос по составлению всех сочетаний.

Автор - MCH
Дата добавления - 14.01.2015 в 01:00
MCH Дата: Среда, 14.01.2015, 01:39 | Сообщение № 6
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Получилось не очень универсально, но вроде работает
К сообщению приложен файл: Combin.xls (57.0 Kb)
 
Ответить
СообщениеПолучилось не очень универсально, но вроде работает

Автор - MCH
Дата добавления - 14.01.2015 в 01:39
Алина_ Дата: Среда, 14.01.2015, 17:20 | Сообщение № 7
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
MCH, спасибо большое. Все работает.

С уважением,
Алина
 
Ответить
СообщениеMCH, спасибо большое. Все работает.

С уважением,
Алина

Автор - Алина_
Дата добавления - 14.01.2015 в 17:20
MCH Дата: Воскресенье, 18.01.2015, 16:17 | Сообщение № 8
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Немного поправил алгоритм, теперь количество исходных столбцов можно задавать
К сообщению приложен файл: Combin2.xls (53.5 Kb)
 
Ответить
СообщениеНемного поправил алгоритм, теперь количество исходных столбцов можно задавать

Автор - MCH
Дата добавления - 18.01.2015 в 16:17
Алина_ Дата: Четверг, 29.01.2015, 22:22 | Сообщение № 9
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Уважаемый МСН,

удалено - нарушение Правил форума

Алина
 
Ответить
СообщениеУважаемый МСН,

удалено - нарушение Правил форума

Алина

Автор - Алина_
Дата добавления - 29.01.2015 в 22:22
Алина_ Дата: Пятница, 30.01.2015, 19:22 | Сообщение № 10
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Извините, Модератор, я упустила это в правилах. Признаю свою ошибку.
 
Ответить
СообщениеИзвините, Модератор, я упустила это в правилах. Признаю свою ошибку.

Автор - Алина_
Дата добавления - 30.01.2015 в 19:22
Алина_ Дата: Пятница, 30.01.2015, 19:24 | Сообщение № 11
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Уважаемый МСН,

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

Алина
 
Ответить
СообщениеУважаемый МСН,

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

Алина

Автор - Алина_
Дата добавления - 30.01.2015 в 19:24
MCH Дата: Пятница, 30.01.2015, 19:39 | Сообщение № 12
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Выложите файл с увеличенным количеством строк, макрос достаточно универсален, поправки будут минимальны
 
Ответить
СообщениеВыложите файл с увеличенным количеством строк, макрос достаточно универсален, поправки будут минимальны

Автор - MCH
Дата добавления - 30.01.2015 в 19:39
Алина_ Дата: Суббота, 31.01.2015, 04:37 | Сообщение № 13
Группа: Пользователи
Ранг: Новичок
Сообщений: 15
Репутация: 0 ±
Замечаний: 20% ±

Excel 2013
Спасибо, МСН.
К сообщению приложен файл: Combin2_extra_r.xls (56.0 Kb)
 
Ответить
СообщениеСпасибо, МСН.

Автор - Алина_
Дата добавления - 31.01.2015 в 04:37
MCH Дата: Суббота, 31.01.2015, 06:50 | Сообщение № 14
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Как то так
К сообщению приложен файл: Combin2_extra.xls (54.5 Kb)
 
Ответить
СообщениеКак то так

Автор - MCH
Дата добавления - 31.01.2015 в 06:50
Texgen Дата: Воскресенье, 09.08.2015, 20:02 | Сообщение № 15
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
MCH, Добрый день а возможно увеличение количества столбцов до 20
 
Ответить
СообщениеMCH, Добрый день а возможно увеличение количества столбцов до 20

Автор - Texgen
Дата добавления - 09.08.2015 в 20:02
Texgen Дата: Воскресенье, 09.08.2015, 20:20 | Сообщение № 16
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
Texgen, Я извиняюсь до 8 столбцов, А вообще задача такая нужно получить все комбинации неповторяющихся 8 чисел от 1 до 20 всего 125900 комбинаций, при условии 1,2,3,4,5,6,7,8 и 8,7,6,5,4,3,2,1 и 2,1,3,4,5,6,7,8 . т. д. одна и таже комбинация
 
Ответить
СообщениеTexgen, Я извиняюсь до 8 столбцов, А вообще задача такая нужно получить все комбинации неповторяющихся 8 чисел от 1 до 20 всего 125900 комбинаций, при условии 1,2,3,4,5,6,7,8 и 8,7,6,5,4,3,2,1 и 2,1,3,4,5,6,7,8 . т. д. одна и таже комбинация

Автор - Texgen
Дата добавления - 09.08.2015 в 20:20
ShAM Дата: Воскресенье, 09.08.2015, 20:54 | Сообщение № 17
Группа: Друзья
Ранг: Старожил
Сообщений: 1347
Репутация: 249 ±
Замечаний: 0% ±

Excel 2010
Texgen, Вам больше подойдет эта тема: http://www.excelworld.ru/forum/2-1805-1
 
Ответить
СообщениеTexgen, Вам больше подойдет эта тема: http://www.excelworld.ru/forum/2-1805-1

Автор - ShAM
Дата добавления - 09.08.2015 в 20:54
MCH Дата: Понедельник, 10.08.2015, 15:27 | Сообщение № 18
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

А вообще задача такая нужно получить все комбинации неповторяющихся 8 чисел от 1 до 20 всего 125900 комбинаций

У меня получается 125970 вариантов сочетаний (ЧИСЛКОМБ(20;8) = 125970)

[vba]
Код
Sub MyCombin()
      Dim a&(), i&, j&, m&, n&, p&
      n = Val(InputBox("n =", , 20))
      m = Val(InputBox("m =", , 8))
      If n < m Or m < 1 Then Exit Sub

      ReDim a&(1 To m), b&(1 To WorksheetFunction.Combin(n, m), 1 To m)
      For i = 1 To m: a(i) = i: Next i
      If m = n Then p = 1 Else p = m
        
      [a1].CurrentRegion.ClearContents
      Do
          j = j + 1
          For i = 1 To m: b(j, i) = a(i): Next i
          If a(m) = n Then p = p - 1 Else p = m
          If p Then
              For i = m To p Step -1
                  a(i) = a(p) + i - p + 1
              Next i
          End If
      Loop While p
      [a1].Resize(UBound(b), m) = b
End Sub
[/vba]
 
Ответить
Сообщение
А вообще задача такая нужно получить все комбинации неповторяющихся 8 чисел от 1 до 20 всего 125900 комбинаций

У меня получается 125970 вариантов сочетаний (ЧИСЛКОМБ(20;8) = 125970)

[vba]
Код
Sub MyCombin()
      Dim a&(), i&, j&, m&, n&, p&
      n = Val(InputBox("n =", , 20))
      m = Val(InputBox("m =", , 8))
      If n < m Or m < 1 Then Exit Sub

      ReDim a&(1 To m), b&(1 To WorksheetFunction.Combin(n, m), 1 To m)
      For i = 1 To m: a(i) = i: Next i
      If m = n Then p = 1 Else p = m
        
      [a1].CurrentRegion.ClearContents
      Do
          j = j + 1
          For i = 1 To m: b(j, i) = a(i): Next i
          If a(m) = n Then p = p - 1 Else p = m
          If p Then
              For i = m To p Step -1
                  a(i) = a(p) + i - p + 1
              Next i
          End If
      Loop While p
      [a1].Resize(UBound(b), m) = b
End Sub
[/vba]

Автор - MCH
Дата добавления - 10.08.2015 в 15:27
Texgen Дата: Воскресенье, 23.08.2015, 08:44 | Сообщение № 19
Группа: Пользователи
Ранг: Прохожий
Сообщений: 3
Репутация: 0 ±
Замечаний: 0% ±

Excel 2010
MCH, Спасибо hands , 125970 это точное количество комбинаций, а можно ли их все увидеть в Exe файле? Если да, то приложите пример в сообщение, очень хочу разобраться в этом, но пока только начинаю для меня все новое (сложное)
 
Ответить
СообщениеMCH, Спасибо hands , 125970 это точное количество комбинаций, а можно ли их все увидеть в Exe файле? Если да, то приложите пример в сообщение, очень хочу разобраться в этом, но пока только начинаю для меня все новое (сложное)

Автор - Texgen
Дата добавления - 23.08.2015 в 08:44
MCH Дата: Воскресенье, 23.08.2015, 10:47 | Сообщение № 20
Группа: Админы
Ранг: Старожил
Сообщений: 2003
Репутация: 751 ±
Замечаний: ±

Texgen, Вы макрос из моего предыдущего поста можете запустить?
Если нет, то нажмите на кнопку во вложенном файле
К сообщению приложен файл: 820.xlsm (13.5 Kb)
 
Ответить
СообщениеTexgen, Вы макрос из моего предыдущего поста можете запустить?
Если нет, то нажмите на кнопку во вложенном файле

Автор - MCH
Дата добавления - 23.08.2015 в 10:47
Мир MS Excel » Вопросы и решения » Вопросы по Excel » Генерация всевозможных комбинаций согласно заданным условиям (Формулы/Formulas)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!