Cum se generează sau se enumeră toate permutările posibile în Excel?
De exemplu, am trei caractere XYZ, acum, vreau să listez toate permutările posibile pe baza acestor trei caractere pentru a obține șase rezultate diferite astfel: XYZ, XZY, YXZ, YZX, ZXY și ZYX. În Excel, cum ați putea genera sau lista rapid toate permutările pe baza unui număr diferit de caractere?
Generați sau enumerați toate permutările posibile pe baza caracterelor cu cod VBA
Generați sau enumerați toate permutările posibile pe baza caracterelor cu cod VBA
Următorul cod VBA vă poate ajuta să listați toate permutările pe baza numărului dvs. specific de litere, vă rugăm să procedați după cum urmează:
1. Țineți apăsat butonul ALT + F11 tastele pentru a deschide Microsoft Visual Basic pentru aplicații fereastră.
2. Clic Insera > Moduleși lipiți următorul cod în Module Fereastră.
Cod VBA: enumerați toate permutările posibile în 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. Apoi apăsați F5 pentru a rula acest cod și apare o casetă de prompt pentru a vă reaminti să introduceți caracterele pe care doriți să le afișați toate permutările, a se vedea captura de ecran:
4. După introducerea caracterelor, apoi faceți clic pe OK butonul, toate permutările posibile sunt afișate în coloana A a foii de lucru active. Vedeți captura de ecran:
notițe: Dacă lungimea caracterului introdus este egală sau mai mare de 8 caractere, acest cod nu va funcționa deoarece există prea multe permutări.
Enumerați sau generați toate combinațiile posibile din mai multe coloane
Dacă trebuie să generați toate combinațiile posibile pe baza datelor cu mai multe coloane, poate că nu există o modalitate bună de a face față sarcinii. Dar, Kutools pentru Excel's Enumerați toate combinațiile utilitarul vă poate ajuta să listați toate combinațiile posibile rapid și ușor. Faceți clic pentru a descărca Kutools pentru Excel!
Kutools pentru Excel: cu mai mult de 300 de programe de completare Excel la îndemână, încercați fără limitări în 30 de zile. Descărcați și proba gratuită acum!
Cele mai bune instrumente de productivitate de birou
Îmbunătățiți-vă abilitățile Excel cu Kutools pentru Excel și experimentați eficiența ca niciodată. Kutools pentru Excel oferă peste 300 de funcții avansate pentru a crește productivitatea și a economisi timp. Faceți clic aici pentru a obține funcția de care aveți cea mai mare nevoie...
Fila Office aduce interfața cu file în Office și vă face munca mult mai ușoară
- Activați editarea și citirea cu file în Word, Excel, PowerPoint, Publisher, Access, Visio și Project.
- Deschideți și creați mai multe documente în filele noi ale aceleiași ferestre, mai degrabă decât în ferestrele noi.
- Vă crește productivitatea cu 50% și reduce sute de clicuri de mouse pentru dvs. în fiecare zi!