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

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

Author: Xiaoyang Last Modified: 2025-06-05
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
Популярные функции: Найти, выделить или отметить дубликаты | Удалить пустые строки | Объединить столбцы или ячейки без потери данных |   Округлить без формулы ...
Супер ПОИСК: VLOOKUP по нескольким критериям | VLOOKUP с несколькими значениями | Многолистовой поиск | Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскрывающийся список | Зависимый раскрывающийся список | Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определённое количество столбцов | Переместить столбцы | Переключить видимость скрытых столбцов | Сравнить диапазоны и столбцы ...
Избранные функции: Сетка фокусировки | Дизайн листа | Улучшенная строка формулы | Управление книгами и листами | Библиотека автотекста | Выбор даты | Объединить данные | Шифрование/расшифровка ячеек | Отправить письмо по списку | Супер фильтр | Специальный фильтр (фильтр ячеек с жирным/курсивом/зачёркнутым...) ...
Топ-15 наборов инструментов:12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...) |50+ типов диаграмм (Диаграмма Ганта, ...) |40+ практических формул (Расчет возраста на основе даты рождения, ...) |19 инструментов вставки (Вставить QR-код, Вставить изображение по пути, ...) |12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...) |7 инструментов для объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...) | ... и многое другое

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


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

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