Prirejanje parov

Pomoč pri delu z MS Excelom
Odgovori
mkralj123
Prispevkov: 77
Pridružen: Sr Jan 14, 2009 12:21 pm

Prirejanje parov

Odgovor Napisal/-a mkralj123 »

Pozdrav vsem. imam problem, ki ga ne znam elegantno rešiti, na "peš" način gre, ampak to ni to. Torej, za potrebe neke rekreativne teniške lige moram izpisati vse možne kombinacije parov igralcev, ki se lahko srečajo v ligi. Igra pa se enokrožni sistem. Imam imena 24 igralcev v celicah od A1 do A24. Skupno število vseh možnih srečanj, če vsak igra z vsakim je 276
=combin(24;2), to znam. Zdaj bi pa rad v celicah od B1 do C276 zapisal vse te možne pare. V B1 igralec1 , v C1 igralec2, v B2 igralec1, v C2 igralec3, ... Hvala za morebitne odgovore.lpm
admin
Site Admin
Prispevkov: 3712
Pridružen: Sr Jul 20, 2005 10:06 pm

Odgovor Napisal/-a admin »

Po kratkem oddihu :)...

Spodaj imate funkcijo, ki sprejme območje kjer so navedena moštva (posamezniki) udeleženi v tekmovanju, ter celico od koder dalje se bodo izpisale vse možne kombinacije tekem.

Priložena je tudi funkcija 'izvedi', ki reši vaš konkreten primer:

Koda: Izberi vse

Option Explicit

'
'   www.matjazev.net
'
'     april 2009
'
Sub kombiniraj(vhod As Range, izhod As Range)
    Dim vrstica As Long
    Dim i As Long, j As Long
    
    vrstica = 0
    For i = vhod.Row To vhod.Rows.Count - 1
        For j = i + 1 To vhod.Rows.Count
            izhod.Cells(1, 1).Offset(vrstica, 0).Value = vhod.Cells(1, 1).Offset(i - 1, 0)
            izhod.Cells(1, 1).Offset(vrstica, 1).Value = vhod.Cells(1, 1).Offset(j - 1, 0)
            vrstica = vrstica + 1
        Next
    Next
End Sub

Sub izvedi()
    kombiniraj Range("a1:a24"), Range("b1")
End Sub
lp,
Matjaž Prtenjak
Administrator
mkralj123
Prispevkov: 77
Pridružen: Sr Jan 14, 2009 12:21 pm

Odgovor Napisal/-a mkralj123 »

Hvala za hiter odgovor, stvar dela tako kot sem si zamilsli.
lpm
Odgovori