Note: The other languages of the website are Google-translated. Back to English

Sut i gynhyrchu neu restru'r holl drawsnewidiadau posibl yn Excel?

Er enghraifft, mae gen i dri chymeriad XYZ, nawr, rydw i eisiau rhestru'r holl drawsnewidiadau posib yn seiliedig ar y tri chymeriad hyn i gael chwe chanlyniad gwahanol fel hyn: XYZ, XZY, YXZ, YZX, ZXY a ZYX. Yn Excel, sut allech chi gynhyrchu neu restru'r holl drawsnewidiadau yn gyflym yn seiliedig ar nifer wahanol o gymeriadau?

Cynhyrchu neu restru'r holl drawsnewidiadau posibl yn seiliedig ar gymeriadau â chod VBA


swigen dde glas saeth Cynhyrchu neu restru'r holl drawsnewidiadau posibl yn seiliedig ar gymeriadau â chod VBA

Efallai y bydd y cod VBA canlynol yn eich helpu i restru'r holl drawsnewidiadau yn seiliedig ar eich nifer benodol o lythyrau, gwnewch fel a ganlyn:

1. Daliwch i lawr y ALT + F11 allweddi i agor y Microsoft Visual Basic ar gyfer Ceisiadau ffenestr.

2. Cliciwch Mewnosod > Modiwlau, a gludwch y cod canlynol yn y Modiwlau Ffenestr.

Cod VBA: Rhestrwch yr holl drawsnewidiadau posib yn 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. Yna pwyswch F5 allwedd i redeg y cod hwn, ac mae blwch prydlon yn cael ei popio allan i'ch atgoffa i nodi'r cymeriadau rydych chi am restru'r holl drawsnewidiadau, gweler y screenshot:

permutations rhestr doc 1

4. Ar ôl mynd i mewn i'r cymeriadau, ac yna cliciwch OK botwm, mae'r holl drawsnewidiadau posib yn cael eu harddangos yng ngholofn A y daflen waith weithredol. Gweler y screenshot:

permutations rhestr doc 2

Nodyn: Os yw hyd y cymeriad a gofnodwyd yn hafal neu'n fwy nag 8 nod, ni fydd y cod hwn yn gweithio oherwydd bod gormod o drawsnewidiadau.

permutations rhestr doc 3


Rhestrwch neu gynhyrchwch yr holl gyfuniadau posib o sawl colofn

Os oes angen i chi gynhyrchu'r holl gyfuniadau posibl yn seiliedig ar ddata colofnau lluosog, efallai, nid oes ffordd dda o ddelio â'r dasg. Ond, Kutools ar gyfer Excel's Rhestrwch Pob Cyfuniad gall cyfleustodau eich helpu i restru'r holl gyfuniadau posibl yn gyflym ac yn hawdd. Cliciwch i lawrlwytho Kutools ar gyfer Excel!

mae doc yn rhestru pob cyfuniad

Kutools ar gyfer Excel: gyda mwy na 300 o ychwanegiadau Excel defnyddiol, am ddim i geisio heb unrhyw gyfyngiad mewn 30 diwrnod. Dadlwythwch a threial am ddim Nawr!


Yr Offer Cynhyrchedd Swyddfa Gorau

Mae Kutools for Excel yn Datrys y rhan fwyaf o'ch Problemau, ac yn Cynyddu Eich Cynhyrchedd 80%

  • Ailddefnyddio: Mewnosod yn gyflym fformwlâu cymhleth, siartiau ac unrhyw beth rydych chi wedi'i ddefnyddio o'r blaen; Amgryptio Celloedd gyda chyfrinair; Creu Rhestr Bostio ac anfon e-byst ...
  • Bar Fformiwla Gwych (golygu llinellau lluosog o destun a fformiwla yn hawdd); Cynllun Darllen (darllen a golygu nifer fawr o gelloedd yn hawdd); Gludo i'r Ystod Hidlo...
  • Uno Celloedd / Rhesi / Colofnau heb golli Data; Cynnwys Celloedd Hollt; Cyfuno Rhesi / Colofnau Dyblyg... Atal Celloedd Dyblyg; Cymharwch y Meysydd...
  • Dewiswch Dyblyg neu Unigryw Rhesi; Dewiswch Blank Rows (mae pob cell yn wag); Darganfyddiad Gwych a Darganfyddiad Niwlog mewn Llawer o Lyfrau Gwaith; Dewis ar Hap ...
  • Copi Union Celloedd Lluosog heb newid cyfeirnod fformiwla; Auto Creu Cyfeiriadau i Daflenni Lluosog; Mewnosod Bwledi, Blychau Gwirio a mwy ...
  • Testun Detholiad, Ychwanegu Testun, Tynnu yn ôl Swydd, Tynnwch y Gofod; Creu ac Argraffu Subtotals Paging; Trosi rhwng Cynnwys a Sylwadau Celloedd...
  • Hidlo Super (arbed a chymhwyso cynlluniau hidlo i ddalenni eraill); Trefnu Uwch yn ôl mis / wythnos / dydd, amlder a mwy; Hidlo Arbennig gan feiddgar, italig ...
  • Cyfuno Llyfrau Gwaith a Thaflenni Gwaith; Uno Tablau yn seiliedig ar golofnau allweddol; Rhannwch Ddata yn Daflenni Lluosog; Trosi Swp xls, xlsx a PDF...
  • Mwy na 300 o nodweddion pwerus. Yn cefnogi Swyddfa / Excel 2007-2019 a 365. Yn cefnogi pob iaith. Defnydd hawdd yn eich menter neu sefydliad. Nodweddion llawn treial am ddim 30 diwrnod. Gwarant arian yn ôl 60 diwrnod.
tab kte 201905

Mae Tab Office yn Dod â rhyngwyneb Tabbed i'r Swyddfa, a Gwneud Eich Gwaith yn Haws o lawer

  • Galluogi golygu a darllen tabbed yn Word, Excel, PowerPoint, Cyhoeddwr, Mynediad, Visio a Phrosiect.
  • Agor a chreu dogfennau lluosog mewn tabiau newydd o'r un ffenestr, yn hytrach nag mewn ffenestri newydd.
  • Yn cynyddu eich cynhyrchiant 50%, ac yn lleihau cannoedd o gliciau llygoden i chi bob dydd!
gwaelod officetab
sylwadau (13)
Dim sgôr eto. Byddwch y cyntaf i sgorio!
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo, rwy'n gwneud prosiect bach gan ddefnyddio rheolau newid a chyfuno. Dwi angen eich cefnogaeth ar hyn os gwelwch yn dda. Senario: Mae gen i ddata alffa rhifol 13 digid (00SHGO8BJIDG0) Rydw i eisiau codio i gyfnewid S i 5, I i 1 ac O i 0 ac i'r gwrthwyneb. Y prosiect yw os oes gennyf y data 13 digid cywir byddaf yn derbyn cod pasio 3 digid. (ee) 00SHG08BJ1DG0 - 500 yw'r cod pasio ond oherwydd teipio anghywir mae hynny yn lle 1 oedd yn I a 0 oedd O mae gwybodaeth anghywir. allwch chi fy helpu os gwelwch yn dda.
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo,

Rwy'n ceisio cael permutation ar gyfer 82 nod, mae'r cod a ddarperir yn gweithio, ond, gan mai dim ond 1048576 yw'r colofnau, rwyf am symud yr allbwn nesaf yn B,C,D... A all unrhyw un ohonoch fy helpu ar hyn ystyried
Lleihawyd y sylw hwn gan y safonwr ar y wefan
@Supraja...

yn yr is cyntaf cliriwch bob cell... nid dim ond y rhes gyntaf
--Celloedd.Clear

Is-GetPermutation(Str1 Fel Llinynnol, Str2 Fel Llinynnol, ByRef xRow As Hir)
Dim i Fel Cyfanrif, xLen Fel Cyfanrif
xLen = Len(Str2)
Os xLen < 2 Yna
'symudwch i'r golofn nesaf pan gyrhaeddwch 100
Celloedd (((xRow - 1) Mod 100) + 1, 1 + Int(xRow / 100)) = Str1 a Str2
xRow = xRhes + 1
arall
Am i = 1 I xLen
Ffoniwch GetPermutation(Str1 + Canolbarth(Str2, i, 1), Chwith(Str2, i - 1) + Dde(Str2, xLen - i), xRow)
Digwyddiadau
Gorffennwch Os
Is-End
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Sawl dilyniant o 3 peth y gellir eu ffurfio o 7 peth gwahanol mae ailosod a threfn yn bwysig?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
3 i allu 7:2187
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo pawb. Dwi angen help ar hyn. Mae gen i ddwy wyddor i'w trynewid mewn 20 rhes. Ond nid wyf yn ei gael yn iawn. Dylai unrhyw un a allai fy helpu anfon y permutation i fy e-bost. pauladah69@gmail.com.


1.abba
2.aabb
3.aabb
4.aabb
5.aabb
6.aabb
7.aabb
8.aabb
9.aabb
10.aabb
11.aabb
12.aabb
13.aabb
14.aabb
15.aabb
16.aabb
17.aabb
18.aabb
19.aabb
20.aabb
Lleihawyd y sylw hwn gan y safonwr ar y wefan
ni fydd y cod hwn yn gweithio oherwydd bod yna ddau newidiad lawer


dylai fod:

ni fydd y cod hwn yn gweithio oherwydd bod gormod o drynewidiadau


HTH
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo, MC,
Diolch am eich atgoffa cynnes, fy nghamgymeriad i ydyw. Rwyf wedi ei gywiro.
Diolch yn fawr!
Lleihawyd y sylw hwn gan y safonwr ar y wefan
peki bunu listeleyecek bir rhaglen uygulama yok mu?basit sıradan bir hesaplamadan daha fazlasına ihtiyacı olan ne yapacak?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
pwy all anfon rhestr ataf o 10 eitem wahanol wedi'u trynewid gan 2 ganlyniad. cod hwn doe

snt yn gweithio ar hyn
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo, os yw'r llinyn mewnbwn yn cynnwys nodau dyblyg, yna mae'r is yn cynhyrchu trynewidiadau dyblyg.
Nid yw hyn yn digwydd os gwnewch yr addasiad canlynol i'r ddolen:

' ======================
Am i = 1 I xLen
Os yw Instr( Chwith(Str2, i - 1), Canolbarth(Str2, i, 1) ) = 0 yna
Ffoniwch GetPermutation(Str1 + Canolbarth(Str2, i, 1), Chwith(Str2, i - 1) + Dde(Str2, xLen - i), xRow)
Diwedd os
Digwyddiadau
' ======================

Mae creu newidynnau lleol dros dro ar gyfer Canolbarth (Str2, i, 1) ac ar gyfer Chwith (Str2, i - 1), ac osgoi'r prawf ar gyfer i=1 yn ei gwneud hi'n mynd yn gyflymach:


' ======================
Is-GetPermutation(Str1 Fel Llinynnol, Str2 Fel Llinynnol, ByRef xRow As Hir)
Dim i Fel Cyfanrif, xLen Fel Cyfanrif, Str2 chwith fel Llinyn, c fel Llinynnol
xLen = Len(Str2)
Os xLen < 2 Yna
Ystod ("A" & xRow) = Str1 a Str2
xRow = xRhes + 1
arall
Ffoniwch GetPermutation(Str1 + Mid(Str2, 1, 1), I'r Dde(Str2, xLen - 1), xRow)
Am i = 2 I xLen
c = Canolbarth(Str2, i, 1)
Str2left = Chwith(Str2, i - 1)
Os yw Instr( Str2 i'r chwith, c ) = 0 yna
Ffoniwch GetPermutation(Str1 + c, Str2left + Right(Str2, xLen - i), xRow)
Gorffennwch Os
Digwyddiadau
Gorffennwch Os
Is-End
' ======================

Cheers,
DVD
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo!

Sut i gael gwared ar 10 permutações ?
Lleihawyd y sylw hwn gan y safonwr ar y wefan
Helo, Mateus,
I ddatrys eich problem, cymhwyswch y cod isod: (Sylwer: os oes mwy nag 8 nod, bydd y cod yn gweithredu'n araf.)
Sub GetString()
'Updateby Extendoffice
    Dim xStr As String
    Dim FRow As Long
    Dim FC As Integer
    Dim xScreen As Boolean
    Dim xNumber As Long
    xNumber = 10 ' This is the max length of the characters you can change it to 11, 12, 13...as you need
    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) > xNumber Then
        MsgBox "Too many permutations!", vbInformation, "Kutools for Excel"
        Exit Sub
    Else
        ActiveSheet.Columns(1).Clear
        FRow = 1
        FC = 1
        Call GetPermutation("", xStr, FRow, FC)
    End If
    Application.ScreenUpdating = xScreen
End Sub
Sub GetPermutation(Str1 As String, Str2 As String, ByRef xRow As Long, ByRef xc As Integer)
    Dim i As Integer, xLen As Integer
    xLen = Len(Str2)
    If xLen < 2 Then
        If xRow > 1000000 Then
            xc = xc + 1
            xRow = 1
        End If
       ActiveSheet.Cells(xRow, xc) = 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, xc)
        Next
    End If
End Sub


Rhowch gynnig arni, gobeithio y gall eich helpu!
Nid oes unrhyw sylwadau wedi'u postio yma eto
Gadewch eich sylwadau
Postio fel Gwestai
×
Graddiwch y swydd hon:
0   Cymeriadau
Lleoliadau a Awgrymir