združevanje v excellu
Problem iz Excella. Imamo recimo 2 stolpca, ki sta videti takole:
a b
Janez Petrol
Micka Petrol
Jožefa Petrol
Alojz Žito
Frenk Žito
Rada bi dobila:
a b
Janez, Micka, Jožefa Petrol
Alojz, Frenk Žito
Se komu sanja kako to narest????
Hvalaaaaaa, vedno ste mi zelo v pomoč!
Maruša
P.s. Tajfun, zdej so pa dopusti ;-))
Ja, copy paste varjanta skorajda ne pride v poštev, čeprav … če drugega ni v tistem trenutku … bi pa vsekakor ta problem radi rešili enkrat za večno …
Tudi sama sem pomislila na makre, s katerimi smo pa zgolj bežni znanci in se poznamo samo po imenu. Nimam pojma, kako se to dela, sem se pa pripravljena naučiti (ampak ne iz knjig, k te računalniške knjige so nam družboslovcem napisane v povsem tujem jeziku).
Sem pridna, da se kar kadi, tako, da če mi je kdo pripravljen pomagati z makrom, bom neizmerno hvaležna (lahk tut častim pir ;-))
No če si pa tako pridna potem pa začniva…
Ker ne vem čisto točno, kako imaš podatke vnešene sem predpostavljal 2 stvari.
1. Podatki so v Sheet1, v stolpcih A in B, vmes pa ni praznih vrstic.
2. Podatki se prepišejo v listo Sheet 2
Najprej greva na menu Tools –> Macro –> Visual Basic Editor
Na levem zgornjem delu imaš okence Project, kjer so verjetno Sheet1, Sheet2 itd. Klikni nekam na prazno polje z desno miško, izberi Insert –> Module. Pojavi se ti Module1 in v sredini se odpre okno (Book1 – Module1 (Code)). V to okno narediš copy/paste tegale :
Dim stRezultatov
Dim PoljeB(100) As String
Dim Rezultat(100) As String
Sub Sortiraj()
Dim i As Integer
Dim pom As String
Dim celica As String
Dim pozicija As Integer
For i = 1 To 100
PoljeB(i) = “”
Rezultat(i) = “”
Next i
i = 1
stRezultatov = 0
pom = Worksheets(“Sheet1”).Range(“B” & i).Value
Do While pom “”
pozicija = NajdiPolje(pom)
If pozicija = 0 Then
stRezultatov = stRezultatov + 1
PoljeB(stRezultatov) = pom
Rezultat(stRezultatov) = Rezultat(stRezultatov) & Worksheets(“Sheet1”).Range(“A” & i).Value
Else
Rezultat(pozicija) = Rezultat(pozicija) & “, ” & Worksheets(“Sheet1”).Range(“A” & i).Value
End If
i = i + 1
pom = Worksheets(“Sheet1”).Range(“B” & i).Value
Loop
For i = 1 To stRezultatov
Worksheets(“Sheet2”).Range(“A” & i).Value = Rezultat(i)
Worksheets(“Sheet2”).Range(“B” & i).Value = PoljeB(i)
Next i
MsgBox “Premetavanje je zaključeno”, vbInformation, “Lep pozdravček”
End Sub
Public Function NajdiPolje(Vrednost As String) As Integer
Dim i As Integer
NajdiPolje = 0
For i = 1 To stRezultatov
If PoljeB(i) = Vrednost Then
NajdiPolje = i
Exit For
End If
Next i
End Function
Zadevo shraniš (disketka v barčku pod meniji) in zapreš komplet okno (Microsoft Visual Basic – xxxx.xls)
Ko si nazaj v Excelu pojdi na menu Tools –> Macro –> Macros, se postavi na makro Sortiraj in pritisni Run.
In to je to, sortirane podatke imaš sedaj v Sheet2, pivo pa se menda tudi že hladi 🙂
O marička, bog mi pomagej, O O takele oke imam še sedaj. Bom poskusila narest, čeprav mi je kr tesno pri srcu.
Hmmm vsekakor pa ti najlepša hvala za pomoč. Če bom imela še kake težave, se pa spet javim. Za tole si si zaslužil gajbo pira!!!! Res bi vam enkrat častila pir, sam kaj ko se zmente sami poznani fantje, pa narodn bi mi blo pol kr uletet …
Ma nič bat, saj to je čisto isto, kot bi ti rekel da odpri Word, naredi nov dokument in skopiraj notri en spis od 30 vrstic o dežku, ki pada.
Tam te sigurno ne bi nič stiskalo :))
Če na bo šlo, ti lahko modul pošljem v datoteki in ga samo pripopaš zraven, ampak itak da bo šlo.
A kar gajbo, tolele bi bla pa že prava žurka :))
Sicer pa se mi tolko redko dobimo, da itak pozabimo kdo je kdo in je tud nam narodn ko uletimo 🙂
Ne čisto 🙂
A se čva midva naprej po mailu menit, da ne bova klobasala tulele po forumu.
Najbolje bi blo, da mi pošlješ kar datoteko, ali pa en primerček z izmišljenimi podatki in kako bi rada imela na koncu.
Moj mail : jernej72@yahoo.com
Forum je zaprt za komentiranje.