KutoolsforOffice — Одно решение — пять мощных инструментов.Меньше усилий — больше результата.

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

АвторСяоянДата изменения

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

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

Получение всех возможных комбинаций из одного столбца с помощью кода VBA


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

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

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

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

создайте первую вспомогательную формулу

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

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

создайте вторую вспомогательную формулу

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, а символ +используется в качестве разделителя между комбинациями; вы можете заменить его на нужный вам.

введите формулу

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

Примечание: эта формула доступна только в Office 2019, 365 и более поздних версиях.
скриншот kutools for excel ai

Раскройте магию Excel с помощью KUTOOLS AI

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

Получение всех возможных комбинаций из одного столбца с помощью кода VBA

Приведённые выше формулы доступны только в более новых версиях 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 для получения всех комбинаций из одного столбца

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

🤖KUTOOLS AI Помощник: Преобразуйте Анализ данных с помощью:Интеллектуального выполнения   |  Генерации кода|  Создания пользовательские формулы  |  Анализа данных и построения диаграмм|  Вызова Расширенные функции
Популярные функции:Поиск, выделение или Отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячеек без потери данных   |  Округление без использования формул
Супер ПОИСК:VLookup по нескольким критериям  |  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.

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