Как перечислить все возможные комбинации из одного столбца в Excel?
Если вы хотите вернуть все возможные комбинации из данных одного столбца, чтобы получить результат, как показано на снимке экрана ниже, есть ли у вас какие-либо быстрые способы решения этой задачи в Excel?
Перечислите все возможные комбинации из одного столбца с формулами
Перечислите все возможные комбинации из одного столбца с кодом VBA
Перечислите все возможные комбинации из одного столбца с формулами
Следующие формулы массива могут помочь вам выполнить эту работу, пожалуйста, выполняйте шаг за шагом:
1. Во-первых, вы должны создать две вспомогательные ячейки формулы. В ячейку C1 введите приведенную ниже формулу и нажмите Shift + Ctrl + Enter клавиши для получения результата:
2. В ячейке C2 введите следующую формулу и нажмите Shift + Ctrl + Enter клавиши вместе, чтобы получить второй результат, см. снимок экрана:
3. Затем скопируйте и вставьте следующую формулу в ячейку D2 и нажмите Shift + Ctrl + Enter вместе, чтобы получить первый результат, см. снимок экрана:
4. Затем выберите эту ячейку формулы и перетащите маркер заполнения вниз, пока не появятся пустые ячейки. Теперь вы можете видеть, что все комбинации данных указанного столбца отображаются, как показано ниже:
Перечислите все возможные комбинации из одного столбца с кодом VBA
Приведенные выше формулы доступны только для более новых версий Excel. Если у вас есть более ранние версии Excel, следующий код VBA может оказать вам услугу.
1, нажмите Alt + F11 клавиши одновременно, чтобы открыть Microsoft Visual Basic для приложений окно.
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 ключ для выполнения этого кода. Все комбинации из одного столбца перечислены, как показано ниже:
Лучшие инструменты для офисной работы
Усовершенствуйте свои навыки работы с Excel с помощью Kutools for Excelи испытайте эффективность, как никогда раньше. Kutools for Excel Предлагает более 300 расширенных функций для повышения производительности и экономии времени. Нажмите здесь, чтобы получить функцию, которая вам нужна больше всего...
Office Tab Добавляет в Office интерфейс с вкладками и значительно упрощает вашу работу
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!










