Jak generovat nebo vypsat všechny možné permutace v aplikaci Excel?
Například mám tři znaky XYZ, teď chci vypsat všechny možné permutace založené na těchto třech znacích, abych získal šest různých výsledků takto: XYZ, XZY, YXZ, YZX, ZXY a ZYX. Jak můžete v aplikaci Excel rychle vygenerovat nebo vypsat všechny permutace na základě různého počtu znaků?
Vygenerujte nebo vypsejte všechny možné obměny na základě znaků pomocí kódu VBA
Vygenerujte nebo vypsejte všechny možné obměny na základě znaků pomocí kódu VBA
Následující kód VBA vám může pomoci se seznamem všech permutací na základě vašeho konkrétního počtu písmen, postupujte takto:
1. Podržte ALT + F11 klávesy pro otevření Microsoft Visual Basic pro aplikace okno.
2, klikněte Vložit > Modula vložte následující kód do Modul Okno.
Kód VBA: Seznam všech možných permutací v aplikaci 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. Pak stiskněte tlačítko F5 klíč ke spuštění tohoto kódu a zobrazí se okno s výzvou, které vám připomene zadání znaků, které chcete vypsat do všech permutací, viz screenshot:
4. Po zadání znaků a poté klikněte na OK Ve sloupci A aktivního listu se zobrazí všechny možné permutace. Viz screenshot:
Poznámka: Pokud je zadaná délka znaků rovna nebo větší než 8 znaků, tento kód nebude fungovat, protože existuje příliš mnoho permutací.
Seznamujte nebo generujte všechny možné kombinace z více sloupců
Pokud potřebujete vygenerovat všechny možné kombinace založené na datech více sloupců, možná neexistuje dobrý způsob řešení úlohy. Ale, Kutools pro Excel's Seznam všech kombinací vám pomůže rychle a snadno vypsat všechny možné kombinace. Klikněte a stáhněte si Kutools pro Excel!
Kutools pro Excel: s více než 300 praktickými doplňky aplikace Excel, můžete vyzkoušet bez omezení do 30 dnů. Stáhněte si a vyzkoušejte zdarma hned teď!
Nejlepší nástroje pro produktivitu v kanceláři
Rozšiřte své dovednosti Excel pomocí Kutools pro Excel a zažijte efektivitu jako nikdy předtím. Kutools for Excel nabízí více než 300 pokročilých funkcí pro zvýšení produktivity a úsporu času. Kliknutím sem získáte funkci, kterou nejvíce potřebujete...
Office Tab přináší do Office rozhraní s kartami a usnadňuje vám práci
- Povolte úpravy a čtení na kartách ve Wordu, Excelu, PowerPointu, Publisher, Access, Visio a Project.
- Otevřete a vytvořte více dokumentů na nových kartách ve stejném okně, nikoli v nových oknech.
- Zvyšuje vaši produktivitu o 50%a snižuje stovky kliknutí myší každý den!