Listing Kombinationer

Diverse Beckie Granqvist November 1, 2016 0 5
FONT SIZE:
fontsize_dec
fontsize_inc

 Ron vet han använda funktionen COMBIN till antalet kombinationer som kan göras för att fastställa en serie siffror. Han undrar, men om det finns ett sätt att lista alla kombinationer själva.

 Det finns ingen inbyggd sätt kvar kombinationer i Excel. Däremot kan du skapa ett makro för att göra affären för dig. Om du vill att unika kombinationer i en serie sekventiella numren börjar på 1, sedan nästa uppsättning makron kommer att göra susen. Allt du behöver göra är att köra TestCNR funktionen och du kommer att sluta med en "matris" av celler som representerar antalet fyrsiffriga kombinationer i den sekventiella värdegrund som sträcker sig från 1 till 10.

 Sub TestCNR
 Cnr 10, 4
 End Sub

 Sub Cnr
 i = 1
 J = 1-R
 Celler .Value = j
 Nästa

 Gör till färdigt
 j = findfirst Liten
 För k = 1 till j - 1
 Celler Celler .Value = .Value
 Nästa
 Celler Celler .Value = .Value + 1
 För k = j + 1 R
 Celler Celler .Value = .Value + 1
 Nästa
 i = i + 1
 Loop
 End Sub

 Funktion Kom
 Temp = Sant

 För j = r Till en Step -1
 Om celler .Value <> j + Därefter
 Temp = Falsk
 End If
 Nästa
 Kom = temp
 End Function

 Funktion findfirst Liten
 j = r
 Gör tills cellerna .Value <> j +
 j = j - 1
 Loop
 Findfirst Small = j
 End Function

 Makro kommer att skriva över vad som finns i kalkylbladet, så se till att du slår visar testet med ett tomt kalkylblad. Om du vill ändra storleken på enheten eller antalet element i undergrupp, bara ändra värdena passerade i TestCNR rutinen.

 Om du vill locka unika kombinationer av en uppsättning tecken, så du måste använda en annan uppsättning makron. Följande kommer att fungera bra; Det förutsätter att de tecken du vill använda som "universum" är i cell A1 och det nummer du vill ha i varje unik kombination i cell A2.

 Sub Hitta set
 As Integer Dim iA
 As String Dim sUniv
 As Integer Dim iWanted
 Dim j As Integer
 As Integer Dim k

 sUniv .Value = Celler
 iWanted .Value = Celler

 ReDim iA
 J = 1 Till iWanted
 iA = j
 Nästa j

 iRow = PutRow

 Gör Tills DoneYet)
 j = Är det här)
 iA la + 1 =
 För k = j + 1 order iWanted
 iA la + 1 =
 Nästa k
 iRow = PutRow
 Loop
 End Sub

 Som boolesk funktion DoneYet
 Imax = UBound
 Temp = Sant
 För j = iMax Till en Step -1
 Om iB <> j + Dan
 Temp = Falsk
 End If
 Nästa
 DoneYet = temp
 End Function

 As Integer funktion Arbeta här
 Imax = UBound
 j = Imax
 Gör Fram iB <> j +
 j = j - 1
 Loop
 Arbeta här = j
 End Function

 Funktion PutRow
 Imax = UBound
 Stemp = ""
 J = 1 IMAX
 Stemp Stemp = & Mid (sUniv, IB, 1)
 Nästa j
 Celler .Value = Stemp
 PutRow = i + 1
 End Function

 Ange Sök Ställer makro- och olika kombinationer av önskad mark i kolumn 2. Var försiktig när du kör makrot, dock. Antalet kombinationer kan bli mycket stor. Till exempel, om du har 26 bokstäver i cell A1 5 i cell A2, kommer makrot krascha. Varför? Eftersom det finns 65 780 möjliga kombinationer av fem tecken och endast 65.536 rader där du vill placera dem.

 Excel tips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips gäller Microsoft Excel 97, 2000, 2002 och 2003. Du kan se en version av denna tips för menyfliksområdet i Excel här: noteringsFörvärv.

(0)
(0)