İpucu: Digər dillər Google-tərcümə olunur. Sizi ziyarət edə bilərsiniz English bu linkin versiyası.
Daxil ol
x
or
x
x
Qeydiyyatdan
x

or

Excel'teki bütün permütasyonları nasıl yaratmaq və ya listelemek?

Məsələn, üç xarakterli XYZ var, indi, bu üç simvol əsasında bütün mümkün permütasyonları XYZ, XZY, YXZ, YZX, ZXY və ZYX kimi altı müxtəlif nəticə əldə etmək istəyirik. Excel-də müxtəlif nömrələrə əsaslanan bütün permütasiyaları tez bir şəkildə yarada və ya necə sıralaya bilərsiniz?

VBA kodu olan simvollara əsaslanan bütün mümkün permütasiyaları yaratmaq və ya siyahıya salmaq


Bir neçə sütundan bütün mümkün kombinasiyalar siyahısı:

Excel üçün Kutools'S Bütün Kombinasiyalar siyahısı yardım proqramı, dəyərlərin birdən çox siyahısına əsaslanan bütün mümkün birləşmələri tez bir zamanda yaratmaq / yaratmaqda kömək edə bilər.

doc birləşmənin bərabər məbləği 2 tapın

Excel üçün Kutools: 200 gündə heç bir məhdudiyyət olmadan 60-dən çox lazımlı Excel eklentisi ilə pulsuzdur. İndi indir və pulsuz sınaq!


arrow mavi sağ bubble VBA kodu olan simvollara əsaslanan bütün mümkün permütasiyaları yaratmaq və ya siyahıya salmaq


Aşağıdakı VBA kodları sizin xüsusi məktublar nömrələrinizə əsasən bütün permütasiyaların siyahısını sizə kömək edə bilər:

1. Basıb saxlayın ALT + F11 düymələri açmaq üçün Proqramlar üçün Microsoft Visual Basic pəncərə.

2. Basın Taxmaq > Modules, və aşağıdakı kodu yapışdırın Modules Pəncərə.

VBA kodu: excel-də bütün mümkün permütasiyaları göstərin

Sub GetString()
'Updateby Extendoffice 20160606
    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. Sonra basın F5 bu kodu çalıştırmak üçün bir tuşa basın ve bütün permütasyonları listelemek istediğiniz simgeleri girmenizi hatırlatmak üçün bir istenen kutu açılır, ekran görüntüsüne baxın:

doc siyahısı permutations 1

4. Simvol girdikdən sonra, sonra basın OK düyməsini, bütün mümkün permütasiyaları aktiv iş səhifəsində A sütununda göstərilir. Ekran görüntüsünə baxın:

doc siyahısı permutations 2

Qeyd: If the entered character length is equal or greater than 8 characters, this code will not work because there are too many permutations.

doc siyahısı permutations 3



Təklif olunan Məhsuldarlıq Vasitələri

Office Tab

qızıl star1 Chrome, Firefox və yeni Internet Explorer kimi Excel və digər Office proqramlarına lazımlı sekmeleri gətirin.

Excel üçün Kutools

qızıl star1 Amazing! 5 dəqiqədə məhsuldarlığınızı artırın. Heç bir xüsusi bacarıqa ehtiyac yoxdur, hər gün iki saat saxlaya bilərsiniz!

qızıl star1 300 Excel üçün yeni funksiyalar, Excel çox asan və güclü olun:

  • Veriyi ləğv etmədən Cell / Satır / Sütunları birləşdirin.
  • Bir neçə Çarşaf və İş Kitabını birləşdirin və birləşdirin.
  • Çaprazları müqayisə edin, birdən çox aralığa kopyalayın, mətni tarixə, vahidə və valyuta çevrilməsinə çevirin.
  • Rənglər, Paging Subtotals, Advanced Sort və Super Filter tərəfindən sayılan,
  • Daha çox seçin / Insert / Sil / Mətn / Biçim / Bağlantı / Yorum / Çalışma kitabları / Çalışma Qurğuları Tools ...

Excel üçün Kutools-un ekranı

Say something here...
symbols left.
You are guest ( Sign Up? )
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.
  • To post as a guest, your comment is unpublished.
    MC · 2 days ago
    this code will not work because there are two many permutations


    should be:

    this code will not work because there are too many permutations


    HTH
    • To post as a guest, your comment is unpublished.
      skyyang · 13 hours ago
      Hello, MC,
      Thank you for your warm reminder, it is my mistake. I have corrected it.
      Thanks a lot!
  • To post as a guest, your comment is unpublished.
    Paul · 10 months ago
    Hello everyone. I need help on this. I have two alphabets to be permutated in 20 rows. But am not getting it right. Anyone who could help me out should send the permutation to my email. pauladah69@gmail.com.


    1.a b b a
    2.a a b b
    3.a a b b
    4.a a b b
    5.a a b b
    6.a a b b
    7.a a b b
    8.a a b b
    9.a a b b
    10.a a b b
    11.a a b b
    12.a a b b
    13.a a b b
    14.a a b b
    15.a a b b
    16.a a b b
    17.a a b b
    18.a a b b
    19.a a b b
    20.a a b b
  • To post as a guest, your comment is unpublished.
    Wule · 10 months ago
    How many sequences of 3things can be formed from 7 different things replacement and order is important?
  • To post as a guest, your comment is unpublished.
    Declan Keogh · 1 years ago
    @Supraja...

    in the first sub clear all cells... not just the first row
    --Cells.Clear

    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
    'move to the next column when you get to 100
    Cells(((xRow - 1) Mod 100) + 1, 1 + Int(xRow / 100)) = 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
  • To post as a guest, your comment is unpublished.
    Supraja · 1 years ago
    Hello,

    Im trying to get a permutation for 82 characters, the code provided works, but, since the columns are only 1048576, I want to move the next output in B,C,D..... Can any of you help me on this regard