Hur genererar eller listar jag alla möjliga permutationer i Excel?
Till exempel har jag tre tecken XYZ, nu vill jag lista alla möjliga permutationer baserat på dessa tre tecken för att få sex olika resultat som detta: XYZ, XZY, YXZ, YZX, ZXY och ZYX. I Excel, hur kan du snabbt generera eller lista alla permutationer baserat på olika antal tecken?
Generera eller lista alla möjliga permutationer baserat på tecken med VBA-kod
Generera eller lista alla möjliga permutationer baserat på tecken med VBA-kod
Följande VBA-kod kan hjälpa dig att lista alla permutationer baserat på ditt specifika antal bokstäver, gör så här:
1. Håll ner ALT + F11 nycklar för att öppna Microsoft Visual Basic för applikationer fönster.
2. Klicka Insert > Modulernaoch klistra in följande kod i Modulerna Fönster.
VBA-kod: Lista alla möjliga permutationer i 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. Tryck sedan på F5 nyckel för att köra den här koden, och en snabbruta visas för att påminna dig om att du anger de tecken som du vill lista alla permutationer, se skärmdump:
4. Efter att ha skrivit in tecknen och klicka sedan på OK -knappen visas alla möjliga permutationer i kolumn A i det aktiva kalkylbladet. Se skärmdump:
Anmärkningar: Om den angivna teckenlängden är lika med eller större än åtta tecken fungerar den här koden inte eftersom det finns för många permutationer.
Lista eller generera alla möjliga kombinationer från flera kolumner
Om du behöver generera alla möjliga kombinationer baserat på flera kolumndata finns det kanske inte ett bra sätt att hantera uppgiften. Men, Kutools för Excel's Lista alla kombinationer verktyget kan hjälpa dig att lista upp alla möjliga kombinationer snabbt och enkelt. Klicka för att ladda ner Kutools för Excel!
Kutools för Excel: med mer än 300 praktiska Excel-tillägg, gratis att prova utan begränsning på 30 dagar. Ladda ner och testa gratis nu!
Bästa kontorsproduktivitetsverktyg
Uppgradera dina Excel-färdigheter med Kutools för Excel och upplev effektivitet som aldrig förr. Kutools för Excel erbjuder över 300 avancerade funktioner för att öka produktiviteten och spara tid. Klicka här för att få den funktion du behöver mest...
Fliken Office ger ett flikgränssnitt till Office och gör ditt arbete mycket enklare
- Aktivera flikredigering och läsning i Word, Excel, PowerPoint, Publisher, Access, Visio och Project.
- Öppna och skapa flera dokument i nya flikar i samma fönster, snarare än i nya fönster.
- Ökar din produktivitet med 50 % och minskar hundratals musklick för dig varje dag!