Hei, osaisiko joku auttaa? Minulla on taulukko, jossa kaikki yhteystiedot ovat sarakkeessa A. Eli A1 solussa lukee nimi, A2 solussa osoite, A3 solussa postinumero ja A4 solussa postitoimipaikka. Sitten taas A5 solussa lukee seuraava nimi, A6 solussa seuraava osoite jne. Joissakin yhteystiedoissa on mukana myös yhteyshenkilö, joissakin ei.
Miten saisin nämä niin, että nimet (eli A1, A5 jne) olisivat sarakkeessa A, osoitteet (eli A2, A6 jne) sarakkeessa B jne.? Lisäksi tuo välillä esiintyvä yhteyshenkilö tuottaa ongelmaa, miten ohjelma osaa jättää tyhjän sarakkeen solun jos yhteyshenkilöä ei olekaan?
Kiitos jos joku osaisi auttaa, ymmärrän jonkin verran Excelistä mutta tällaista en ole ennen tehnyt.
Miten saisin nämä niin, että nimet (eli A1, A5 jne) olisivat sarakkeessa A, osoitteet (eli A2, A6 jne) sarakkeessa B jne.? Lisäksi tuo välillä esiintyvä yhteyshenkilö tuottaa ongelmaa, miten ohjelma osaa jättää tyhjän sarakkeen solun jos yhteyshenkilöä ei olekaan?
Kiitos jos joku osaisi auttaa, ymmärrän jonkin verran Excelistä mutta tällaista en ole ennen tehnyt.
Vastaukset 3
Vanhimmat
Jos nuo tiedot olisivat kaikki tasapituisia niin näin voisi ainakin tehdä. Esim:
C1=SIIRTYMÄ($A$1;SARAKKEET($A1:A1)-1 (RIVIT($1:1)-1)*4;0)
Kopioi kaava F1 asti ja valitse C1:F1 ja kopioi alaspäin. Nyt tiedot ovat rivittäin ja sitten kopioit kaikki ja Liitä määräten (arvot transponoi).
Tämä ei siis toimi jos tiedot ovat eripituisia. 1 tietue saa siis tässä kaavassa olla vain 4 riviä korkea.
Jäi vielä tuosta pois että jos niitä tietueita ei nyt ihan "tuhottomasti" asti ole, niin voisiko niille "ei yhteyshenkilöttömille" lisätä yhden rivin ja muuttaa sitten tuohon kaavaan 4 tilalle 5.
Seuraava ottaa huomioon puuttuvat yhteystietorivit.
Sub sarakkeisiin()
i = 1
j = 1
Do
With Worksheets("Sheet1")
nimi = .Cells(i, 1)
osoite = .Cells(i 1, 1)
pnro = .Cells(i 2, 1)
posti = .Cells(i 3, 1)
If nimi = "" And osoite = "" And pnro = "" And posti = "" Then Exit Sub
If WorksheetFunction.IsNumber(.Cells(i 7, 1)) _
Or .Cells(i 5, 1) = "" Then
yhteys = .Cells(i 4, 1)
i = i 1
Else
yhteys = ""
End If
i = i 4
End With
With Worksheets("Sheet2")
.Cells(1, j) = nimi
.Cells(2, j) = osoite
.Cells(3, j) = pnro
.Cells(4, j) = posti
.Cells(5, j) = yhteys
j = j 1
End With
Loop
End Sub