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

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

Author: Xiaoyang Last Modified: 2025-08-07

Если вам нужно получить все возможные комбинации данных из одного столбца, чтобы получить результат, как показано на скриншоте ниже, есть ли у вас быстрые способы выполнить эту задачу в Excel?

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

Вывести все возможные комбинации из одного столбца с помощью VBA-кода


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

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

1. Сначала создайте две вспомогательные ячейки с формулами. В ячейке C1 введите следующую формулу и нажмите Ctrl + Shift + Enter, чтобы получить результат:

=MAX(LEN(A2:A6))
Примечание: В этой формуле диапазон A2:A6 — это список ячеек, для которых вы хотите получить комбинации.

create the first helper formula

2. В ячейке C2 введите следующую формулу и также нажмите Ctrl + Shift + Enter, чтобы получить второй результат, как показано на скриншоте:

=CONCAT(A2:A6&REPT(" ",C2-LEN(A2:A6)))
Примечание: В этой формуле диапазон A2:A6 — это список ячеек, для которых вы хотите получить комбинации, C2 — ячейка с формулой, которую вы создали на шаге1.

create the second helper formula

3. Затем скопируйте и вставьте следующую формулу в ячейку D2 и нажмите Ctrl + Shift + Enter, чтобы получить первый результат, как показано на скриншоте:

=IF(ROW()>2^(COUNTA(A$2:A$6)),"",TEXTJOIN(" + ",TRUE,IF(MID(TEXT(DEC2BIN(ROW()-1),REPT("0",COUNTA($A$2:$A$6))),ROW(INDIRECT("1:"&COUNTA($A$2:$A$6))),1)+0,TRIM(MID($C$3,(ROW(INDIRECT("1:"&COUNTA($A$2:$A$6)))-1)*$C$2+1,$C$2)),"")))
Примечание: В этой формуле диапазон A2:A6 — это список ячеек, для которых вы хотите получить комбинации, C2 — ячейка с формулой, которую вы создали на шаге1, C3 — ячейка с формулой, которую вы создали на шаге2, символ + используется как разделитель для отделения комбинаций, вы можете изменить его по своему усмотрению.

enter a formula

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

Примечание: Эта формула доступна только в Office2019,365 и более поздних версиях.
a screenshot of kutools for excel ai

Раскройте магию Excel с Kutools AI

  • Умное выполнение: Выполняйте операции с ячейками, анализируйте данные и создавайте диаграммы — всё это посредством простых команд.
  • Пользовательские формулы: Создавайте индивидуальные формулы для оптимизации ваших рабочих процессов.
  • Кодирование VBA: Пишите и внедряйте код VBA без особых усилий.
  • Интерпретация формул: Легко разбирайтесь в сложных формулах.
  • Перевод текста: Преодолейте языковые барьеры в ваших таблицах.
Улучшите возможности Excel с помощью инструментов на базе ИИ. Скачать сейчас и испытайте беспрецедентную эффективность!

Вывести все возможные комбинации из одного столбца с помощью VBA-кода

Приведённые выше формулы доступны только в новых версиях Excel. Если у вас более ранняя версия Excel, следующий VBA-код поможет вам выполнить задачу.

1. Одновременно нажмите клавиши Alt+ F11, чтобы открыть окно Microsoft Visual Basic for Applications.

2. Затем выберите Вставка > Модуль, скопируйте и вставьте приведённый ниже VBA-код в открывшееся окно.

VBA-код: Вывести все возможные комбинации из одного столбца

Sub ConnectArr()
'Updateby ExtendOffice
Dim xDValue As Variant
Dim xOutRg As Range
Dim xDictionary As Object
Dim xF As Long
Dim xChar As String
xDValue = Range("A2:A6").Value 'the data range
Set xOutRg = Range("C1") 'output range
xChar = "," 'separator
For xF = 1 To UBound(xDValue)
    Set xDictionary = CreateObject("Scripting.Dictionary")
    xDictionary(0) = "Sets of " & xF
    Call ConnectValue(xDValue, xDictionary, 0, xF, 0, "", xChar)
    xOutRg.Offset(0, xF - 1).Resize(xDictionary.Count).Value = WorksheetFunction.Transpose(xDictionary.Items)
    Set xDictionary = Nothing
Next
End Sub
Sub ConnectValue(ByRef pDValue, ByRef pDictionary, ByRef pLevel, ByVal pMaxLevel, ByVal pIndex, ByVal pValue, ByVal pChar)
Dim xF As Long
If pLevel = pMaxLevel Then
    pDictionary(pDictionary.Count + 1) = pValue
    Exit Sub
End If
For xF = pIndex + 1 To UBound(pDValue)
    If pValue = "" Then
        Call ConnectValue(pDValue, pDictionary, pLevel + 1, pMaxLevel, xF, pDValue(xF, 1), pChar)
    Else
        Call ConnectValue(pDValue, pDictionary, pLevel + 1, pMaxLevel, xF, pValue & pChar & pDValue(xF, 1), pChar)
    End If
Next
End Sub
Примечание: В приведённом выше коде:
  • A2:A6: это список данных, который вы хотите использовать;
  • C1: это ячейка вывода;
  • ,: это разделитель для отделения комбинаций.

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

vba code to get all combinations from the single column

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

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–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% и сократите сотни кликов мышью ежедневно!