Как да изброя всички възможни комбинации от една колона в 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, След това кликнете върху Поставете > Модули, копирайте и поставете 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% и намалява стотици кликвания на мишката за вас всеки ден!