Перейти к содержимому

Kutools для Office — один пакет. Пять инструментов. Выполняйте больше.

Как создать список или сгенерировать все возможные комбинации в Excel?

Author Xiaoyang Last modified
A screenshot showing an example of two data columns for generating combinations in Excel

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

Создание списка или генерация всех возможных комбинаций из двух списков с помощью формулы

Создание списка или генерация всех возможных комбинаций из трех или более списков с использованием кода VBA

Создание списка или генерация всех возможных комбинаций из нескольких списков с помощью Kutools для Excel


Создание списка или генерация всех возможных комбинаций из двух списков с помощью формулы

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

1. Введите или скопируйте приведенную ниже формулу в пустую ячейку, в данном случае я введу её в ячейку D2, а затем нажмите клавишу "Enter", чтобы получить результат, см. скриншот:

=IF(ROW()-ROW($D$2)+1>COUNTA($A$2:$A$5)*COUNTA($B$2:$B$4),"",INDEX($A$2:$A$5,INT((ROW()-ROW($D$2))/COUNTA($B$2:$B$4)+1))&"-"&INDEX($B$2:$B$4,MOD(ROW()-ROW($D$2),COUNTA($B$2:$B$4))+1))

Примечание: В приведенной выше формуле "$A$2:$A$5" — это диапазон значений первого столбца, а "$B$2:$B$4" — это диапазон значений второго списка, которые вы хотите перечислить во всех их возможных комбинациях, "$D$2" — это ячейка, в которую вы поместили формулу, вы можете изменить ссылки на ячейки по своему усмотрению.

2. Затем выберите ячейку D2 и перетащите маркер заполнения вниз, пока не появятся пустые ячейки. Все возможные комбинации будут перечислены на основе двух списков значений. См. скриншот:


Создание списка или генерация всех возможных комбинаций из трех или более списков с использованием кода VBA

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

1. Удерживайте клавиши "ALT + F11", чтобы открыть окно "Microsoft Visual Basic for Applications".

2. Нажмите "Вставка" > "Модуль" и вставьте следующий код в окно "Модуль".

Код VBA: Генерация всех комбинаций из 3 или нескольких столбцов

Sub ListAllCombinations()
'Updateby Extendoffice
Dim xDRg1, xDRg2, xDRg3 As Range
Dim xRg  As Range
Dim xStr As String
Dim xFN1, xFN2, xFN3 As Integer
Dim xSV1, xSV2, xSV3 As String
Set xDRg1 = Range("A2:A5")  'First column data
Set xDRg2 = Range("B2:B4")  'Second column data
Set xDRg3 = Range("C2:C4")  'Third column data
xStr = "-"   'Separator
Set xRg = Range("E2")  'Output cell
For xFN1 = 1 To xDRg1.Count
    xSV1 = xDRg1.Item(xFN1).Text
    For xFN2 = 1 To xDRg2.Count
        xSV2 = xDRg2.Item(xFN2).Text
      For xFN3 = 1 To xDRg3.Count
        xSV3 = xDRg3.Item(xFN3).Text
        xRg.Value = xSV1 & xStr & xSV2 & xStr & xSV3
        Set xRg = xRg.Offset(1, 0)
       Next
    Next
Next
End Sub
Примечание: В приведенном выше коде "A2:A5", "B2:B4", "C2:C4" — это диапазоны данных, которые вы хотите использовать, "E2" — это ячейка вывода, куда вы хотите поместить результаты. Если вы хотите получить все комбинации из большего числа столбцов, измените и добавьте другие параметры в коде по вашему усмотрению.

3. Затем нажмите клавишу "F5", чтобы запустить этот код, и все комбинации из 3 столбцов будут сгенерированы сразу же, см. скриншот:

A screenshot showing all possible combinations generated from three or more lists using VBA


Создание списка или генерация всех возможных комбинаций из нескольких списков с помощью Kutools для Excel

Если существует несколько списков значений, для которых нужно перечислить все возможные комбинации, возможно, вам будет сложно модифицировать код. Здесь я могу порекомендовать мощный инструмент — "Kutools для Excel", который содержит удобную функцию "Список всех комбинаций", позволяющую быстро составить список всех возможных комбинаций на основе заданных списков данных.

Kutools для Excel предлагает более 300 продвинутых функций для упрощения сложных задач, повышая креативность и эффективность. Интеграция с возможностями ИИ позволяет Kutools автоматизировать задачи с высокой точностью, делая управление данными без усилий. Подробная информация о Kutools для Excel...  Бесплатная пробная версия...

1. Нажмите "Kutools" > "Вставить" > "Список всех комбинаций", см. скриншот:

2. В диалоговом окне "Список всех комбинаций" выполните операции, как показано в демонстрации ниже:

3. Затем все указанные значения и разделители будут перечислены в диалоговом окне, см. скриншот:

A screenshot showing specified values and separators listed in the dialog box

4. После этого нажмите кнопку "ОК", и появится всплывающее окно, которое напомнит вам выбрать ячейку для вывода результата, см. скриншот:

A screenshot of the prompt to select an output cell for combinations

5. Нажмите "OK", и все возможные комбинации на основе заданных списков будут сгенерированы на листе, как показано на следующем скриншоте:

A screenshot showing all possible combinations generated from three or more lists

Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас


Больше связанных статей:

  • Генерация всех комбинаций из 3 или нескольких столбцов
  • Предположим, у меня есть 3 столбца данных, теперь я хочу сгенерировать или перечислить все комбинации данных в этих 3 столбцах, как показано на скриншоте ниже. Есть ли у вас какие-либо хорошие методы для решения этой задачи в Excel?
  • Найти все комбинации, равные заданной сумме
  • Например, у меня есть следующий список чисел, и теперь я хочу узнать, какие комбинации чисел из списка в сумме дают 480, как видно на следующем скриншоте, можно увидеть, что существует пять групп возможных комбинаций, которые в сумме дают 480, такие как 300+60+120, 300+60+40+80 и т.д. В этой статье я расскажу о некоторых методах поиска ячеек, которые в сумме дают определенное значение в Excel.
  • Генерация или перечисление всех возможных перестановок
  • Например, у меня есть три символа XYZ, теперь я хочу перечислить все возможные перестановки на основе этих трех символов, чтобы получить шесть различных результатов, таких как XYZ, XZY, YXZ, YZX, ZXY и ZYX. В Excel, как можно быстро сгенерировать или перечислить все перестановки на основе разного количества символов?
  • Генерация списка всех возможных комбинаций из 4 цифр
  • В некоторых случаях нам может понадобиться сгенерировать список всех возможных комбинаций из 4 цифр от 0 до 9, то есть сгенерировать список 0000, 0001, 0002…9999. Чтобы быстро решить эту задачу в Excel, я представлю несколько приемов.

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Совершенно новый подход к анализу данных благодаря: Интеллектуальное выполнение |  Генерация кода  |  Создание пользовательских формул |  Анализ данных и построение диаграмм  |  Вызов Kutools Functions
Популярные функции: Поиск, выделение или отметка дубликатов | Удалить пустые строки | Объединить столбцы или адреса без потери данных | Округлить ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP по нескольким значениям | Многолистовой поиск | Распознавание нечетких соответствий ...
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ...
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгой и листами | Библиотека автотекста | Выбор даты | Объединить данные | Зашифровать/расшифровать ячейки | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр жирный/курсив/зачеркнутый...) ...
Топ15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ полезных формул (Расчет возраста на основе даты рождения, ...) |19 инструментов для вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое
Используйте Kutools на предпочитаемом вами языке — поддерживает Английский, Испанский, Немецкий, Французский, Китайский и более40 других языков!

Повысьте свои навыки работы в Excel с помощью Kutools для Excel и ощутите эффективность на новом уровне. Kutools для Excel предлагает более300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы выбрать функцию, которая вам нужнее всего...


Office Tab добавляет вкладки в Office и делает вашу работу намного проще

  • Включите режим вкладок для редактирования и чтения в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна вместо новых отдельных окон.
  • Увеличьте свою продуктивность на50% и уменьшите количество щелчков мышью на сотни ежедневно!

Все надстройки Kutools. Один установщик

Пакет Kutools for Office включает надстройки для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro — идеально для команд, работающих в разных приложениях Office.

Excel Word Outlook Tabs PowerPoint
  • Комплексный набор — надстройки для Excel, Word, Outlook и PowerPoint плюс Office Tab Pro
  • Один установщик, одна лицензия — настройка занимает считанные минуты (MSI-совместимо)
  • Совместная работа — максимальная эффективность между приложениями Office
  • 30-дневная полнофункциональная пробная версия — без регистрации и кредитной карты
  • Лучшее соотношение цены и качества — экономия по сравнению с покупкой отдельных надстроек