Hoe genereer of lijst ik alle mogelijke permutaties in Excel?
Bijvoorbeeld, ik heb drie tekens XYZ, en nu wil ik alle mogelijke permutaties op basis van deze drie tekens weergeven om zes verschillende resultaten te krijgen zoals dit: XYZ, XZY, YXZ, YZX, ZXY en ZYX. In Excel, hoe kun je snel alle permutaties genereren of weergeven op basis van een verschillend aantal tekens?
Genereer of lijst alle mogelijke permutaties op basis van tekens met VBA-code
Genereer of lijst alle mogelijke permutaties op basis van tekens met VBA-code
De volgende VBA-code kan helpen om alle permutaties te lijsten op basis van uw specifieke aantal letters. Volg de onderstaande stappen:
1. Houd de toetsen ALT + F11 ingedrukt om het Microsoft Visual Basic for Applications-venster te openen.
2. Klik op Invoegen > Module, en plak de volgende code in het Modulevenster.
VBA-code: Lijst alle mogelijke permutaties in 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. Druk vervolgens op de F5-toets om deze code uit te voeren, en er verschijnt een pop-upvenster waarin u wordt gevraagd de tekens in te voeren waarvoor u alle permutaties wilt weergeven, zie screenshot:
4. Nadat u de tekens hebt ingevoerd, klikt u op de knop OK, en worden alle mogelijke permutaties weergegeven in kolom A van het actieve werkblad. Zie screenshot:
Opmerking: Als de lengte van de ingevoerde tekens gelijk is aan of groter is dan 8 tekens, werkt deze code niet omdat er te veel permutaties zijn.
Lijst of genereer alle mogelijke combinaties uit meerdere kolommen
Als u alle mogelijke combinaties moet genereren op basis van gegevens uit meerdere kolommen, is er misschien geen goede manier om deze taak aan te pakken. Maar de functie Lijst Alle Combinaties van Kutools voor Excel kan u helpen om alle mogelijke combinaties snel en gemakkelijk weer te geven. Klik hier om Kutools voor Excel te downloaden!
Kutools voor Excel: met meer dan 300 handige Excel-add-ins, gratis te proberen zonder beperking gedurende 30 dagen. Download en probeer nu gratis!
Beste productiviteitstools voor Office
Verbeter je Excel-vaardigheden met Kutools voor Excel en ervaar ongeëvenaarde efficiëntie. Kutools voor Excel biedt meer dan300 geavanceerde functies om je productiviteit te verhogen en tijd te besparen. Klik hier om de functie te kiezen die je het meest nodig hebt...
Office Tab brengt een tabbladinterface naar Office en maakt je werk veel eenvoudiger
- Activeer tabbladbewerking en -lezen in Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster, in plaats van in nieuwe vensters.
- Verhoog je productiviteit met50% en bespaar dagelijks honderden muisklikken!
Alle Kutools-invoegtoepassingen. Eén installatieprogramma
Kutools for Office-suite bundelt invoegtoepassingen voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro, ideaal voor teams die werken met Office-toepassingen.





- Alles-in-één suite — invoegtoepassingen voor Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Eén installatieprogramma, één licentie — in enkele minuten geïnstalleerd (MSI-ready)
- Werkt beter samen — gestroomlijnde productiviteit over meerdere Office-toepassingen
- 30 dagen volledige proef — geen registratie, geen creditcard nodig
- Beste prijs — bespaar ten opzichte van losse aanschaf van invoegtoepassingen