Как да генерирам или изброя всички възможни пермутации в Excel?
Например, имам три знака XYZ, сега искам да изброя всички възможни пермутации въз основа на тези три знака, за да получа шест различни резултата като този: XYZ, XZY, YXZ, YZX, ZXY и ZYX. В Excel, как бихте могли бързо да генерирате или изброите всички пермутации въз основа на различен брой знаци?
Генерирайте или избройте всички възможни пермутации въз основа на знаци с VBA код
Генерирайте или избройте всички възможни пермутации въз основа на знаци с VBA код
Следният VBA код може да ви помогне да изброите всички пермутации въз основа на конкретния ви брой букви, моля, направете следното:
1. Задръжте натиснат ALT + F11 за да отворите Microsoft Visual Basic за приложения прозорец.
2. Щракнете Поставете > Модулии поставете следния код в Модули Window.
VBA код: Избройте всички възможни пермутации в Excel
Sub GetString()
'Updateby Extendoffice
Dim xStr As String
Dim FRow As Long
Dim xScreen As Boolean
xScreen = Application.ScreenUpdating
Application.ScreenUpdating = False
xStr = Application.InputBox("Enter text to permute:", "Kutools for Excel", , , , , , 2)
If Len(xStr) < 2 Then Exit Sub
If Len(xStr) >= 8 Then
MsgBox "Too many permutations!", vbInformation, "Kutools for Excel"
Exit Sub
Else
ActiveSheet.Columns(1).Clear
FRow = 1
Call GetPermutation("", xStr, FRow)
End If
Application.ScreenUpdating = xScreen
End Sub
Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long)
Dim i As Integer, xLen As Integer
xLen = Len(Str2)
If xLen < 2 Then
Range("A" & xRow) = Str1 & Str2
xRow = xRow + 1
Else
For i = 1 To xLen
Call GetPermutation(Str1 + Mid(Str2, i, 1), Left(Str2, i - 1) + Right(Str2, xLen - i), xRow)
Next
End If
End Sub
3. След това натиснете F5 ключ, за да изпълните този код, и се появява поле за подкана, за да ви напомни да въведете знаците, които искате да изброите всички пермутации, вижте екранната снимка:
4. След като въведете знаците, щракнете върху OK всички възможни пермутации се показват в колона A на активния работен лист. Вижте екранна снимка:
Забележка: Ако въведената дължина на знака е равна или по-голяма от 8 знака, този код няма да работи, защото има твърде много пермутации.
Избройте или генерирайте всички възможни комбинации от множество колони
Ако трябва да генерирате всички възможни комбинации въз основа на данни от множество колони, може би няма добър начин за справяне със задачата. Но, Kutools за Excel's Избройте всички комбинации помощната програма може да ви помогне да изброите всички възможни комбинации бързо и лесно. Щракнете, за да изтеглите Kutools за Excel!
Kutools за Excel: с повече от 300 удобни добавки за Excel, безплатни за изпробване без ограничение за 30 дни. Изтеглете и изпробвайте безплатно сега!
Най-добрите инструменти за продуктивност в офиса
Усъвършенствайте уменията си за Excel с Kutools за Excel и изпитайте ефективност, както никога досега. Kutools за Excel предлага над 300 разширени функции за повишаване на производителността и спестяване на време. Щракнете тук, за да получите функцията, от която се нуждаете най-много...
Раздел Office Внася интерфейс с раздели в Office и прави работата ви много по-лесна
- Разрешете редактиране и четене с раздели в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Отваряйте и създавайте множество документи в нови раздели на един и същ прозорец, а не в нови прозорци.
- Увеличава вашата производителност с 50% и намалява стотици кликвания на мишката за вас всеки ден!