Як перерахувати всі можливі комбінації з одного стовпця в Excel?
Якщо ви хочете повернути всі можливі комбінації з даних одного стовпця, щоб отримати результат, як показано на зображенні нижче, чи є у вас якісь швидкі способи вирішення цього завдання в Excel?
Перелічіть усі можливі комбінації з одного стовпця з формулами
Перелічіть усі можливі комбінації з одного стовпця з кодом VBA
Перелічіть усі можливі комбінації з одного стовпця з формулами
Наступні формули масивів можуть допомогти вам виконати цю роботу, виконуйте крок за кроком:
1. Спочатку вам слід створити дві допоміжні комірки формули. У клітинку C1 введіть наведену нижче формулу та натисніть Ctrl + Shift + Enter ключі для отримання результату:
2. У клітинку C2 введіть наступну формулу та натисніть Ctrl + Shift + Enter разом, щоб отримати другий результат, дивіться знімок екрана:
3. Потім скопіюйте та вставте наведену нижче формулу в клітинку D2 і натисніть Ctrl + Shift + Enter клавіші разом, щоб отримати перший результат, див. скріншот:
4. Потім виділіть цю клітинку формули та перетягніть маркер заповнення вниз, доки не з’являться порожні клітинки. Тепер ви можете побачити, як усі комбінації вказаних даних стовпця відображаються, як показано нижче:
Перелічіть усі можливі комбінації з одного стовпця з кодом VBA
Наведені вище формули доступні лише для нових версій Excel. Якщо у вас є попередні версії Excel, наведений нижче код VBA може зробити вам послугу.
1. Прес Alt + F11 клавіші одночасно, щоб відкрити Microsoft Visual Basic для додатків вікна.
2. Потім натисніть кнопку Insert > Модулі, скопіюйте та вставте наведений нижче код 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 для Excel і відчуйте ефективність, як ніколи раніше. Kutools для Excel пропонує понад 300 додаткових функцій для підвищення продуктивності та економії часу. Натисніть тут, щоб отримати функцію, яка вам найбільше потрібна...
Вкладка Office Передає інтерфейс із вкладками в Office і значно полегшує вашу роботу
- Увімкніть редагування та читання на вкладках у Word, Excel, PowerPoint, Publisher, Access, Visio та Project.
- Відкривайте та створюйте кілька документів на нових вкладках того самого вікна, а не в нових вікнах.
- Збільшує вашу продуктивність на 50% та зменшує сотні клацань миші для вас щодня!