• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Excel vraagje voor de expert

Status
Niet open voor verdere reacties.

Amadeus

Gebruiker
Lid geworden
19 feb 2005
Berichten
15
Hoi,

Ik heb in Excel, onder elkaar een lijst. Hoe kan ik deze naast elkaar krijgen?

Dit bedoel ik:

Ik heb nu:

rij 1 AAAA
rij 2 BBB
rij 3 XXX DDD
rij 4
rij 5 1111
rij 6 22222
rij 7 3333 55555


Dit wil ik hebben
Kolom 1 Kolom 2 Kolom 3 Kolom 4
AAAA BBBB XXX DDDD
1111 22222 3333 55555

Kan je dit geautomatiseerd door Excel laten doen?
 
Hoi Amadeus,

Aan de vorm te zien zijn het adreslabels.
Er zijn twee methoden:
Directe methode. De adressen moeten steeds op een zelfde rijafstand van elkaar staan.
In Kolom 1, Rij1 zet je de formule:
=INDEX(Bereik;(KOLOM($A1:A1)-1)*N+K;L)

Het bereik is bijvoorbeeld A11:B999, N is het aantal rijen dat steeds tussen de adressen is in jouw voorbeeld 4, K is regel binnen dat bereik (AAAA=1; BBB=2 XXX=3). L is de kolom, voor XXX is dat 1; voor DDD=2.

Indien XXX DDD in 1 cel staan zul je die uit elkaar moeten trekken:
Voor XXX =Deel(INDEX(Bereik;(KOLOM($A1:A1)-1)*N+K;L);1;6 of 7)
Voor DDD =Deel(INDEX(Bereik;(KOLOM($A1:A1)-2)*N+K;L);7 of 8;99)
L is in dit geval steeds 1.

Als er een wisselend aantal rijen tussen de adressen zit wordt het een ander verhaal. De bovenstaande methode wordt dan een puinhoop.
In dat geval moet je in het adressen-sheet een kolom maken die weergeeft waar een nieuw adres begint.
De eenvoudigste manier is in K11 de formule te zetten:
=als(isleeg(A10);RIJ();"")
Als A11 het eerste adres is. Deze simpele formule kopieer je over het hele bereik.

Vervolgens zet je in Blad2 op K11 de formule:
=als(aantal(Blad1!K:K)>RIJEN(K$11:K11);"";KLeinste(BLAD1!K:K;RIJEN(K$11:K11)))

Nu staan alle rijnummers onder elkaar en kun je met de index-formule de oorspronkelijke gegevens weer terug krijgen:
=index(Blad1!A:B;$K11+K;L)

Ik hoop dat je er uit komt.

Jeroen
 
Laatst bewerkt:
Je kunt al een beginnetje maken door de gegevens in de lijst te splitsen mbv teks naar kolommen. Deze vind je in het menu Data en dan tekst naar kolommen. Selecteer allereerst de kolom waar de gegevens in staan!! In het keuzeblad dat verschijnt vink je het bovenst bolletje aan en in het volgende menu vink je spatie aan. Vervolgens voltooien en je gegevens staan gesplitst in kolommen. Ik weet niet hoe jouw originele lijst qua opmaak eruit ziet, hoe groot ie is en of de combinaties die jij per kolom aangaf ook altijd dezelfde zijn dus de macro kan ik je nu zo niet geven.

Basedude
 
Ik ga het straks proberen, laat nog weten of het lukt.

Dank alvast!
 
Oke, dit heb ik nu:

Kolom 1 Kolom 2 Kolom 3 Kolom 4
AAAA BBBB XXX DDDD

Dankzij de formules in de velden:
A1:INDEX($A7:$B$1180;(KOLOM($A$1:$A$1)-1)*4+1;1
B1:INDEX($A$7:$B$1180;(KOLOM($A1:$A1)-1)*4+2;1)
C1:INDEX($A$7:$B$1180;(KOLOM($A1:$A1)-1)*4+3;1)
D1:INDEX($A$7:$B$1180;(KOLOM($A1:$A1)-1)*4+4;1)

Moet vervolgens nu naar beneden kopiëren:
A1:INDEX($A7:$B$1180;(KOLOM($A$1:$A$1)-1)*4+1;1
B1:INDEX($A$12:$B$1180;(KOLOM($A1:$A1)-1)*4+2;1)
C1:INDEX($A$17:$B$1180;(KOLOM($A1:$A1)-1)*4+3;1)
D1:INDEX($A$22:$B$1180;(KOLOM($A1:$A1)-1)*4+4;1)

Inderdaad, de waarde $A7 plus vijf cellen naar beneden.
Iets simpels als "$A7+5" werkt niet. Maar wat wel?


Wolfie
 
Hoi Wolfie,

Dom. Sorry, mijn fout, ik deed het uit mijn hoofd en dan gaat het wel eens fout.

De index-formule moet natuurlijk zijn:
A1:INDEX($A7:$B$1180;(RIJEN($A$1:$A$1)-1)*5+1;1)

Ik heb K uit mijn formule aangepast omdat je aangeeft dat de records om de 5 rijen staan.

Jeroen
 
Hoi Jeroen,

Het werkt prima, alleen het naar beneden trekken (kopieren) niet. Wat ik in mijn vorige post zei.
De waarde van $A7 moet mi anders. Nu lukt het (mij) niet.

Wolfie
 
Hoi Wolfie,

Ik zit weer niet goed te kijken.

A1:INDEX($A$7:$B$1180;(RIJEN(A$1:A1)-1)*5+1;1)

Jeroen
 
Je kunt de cellen selecteren en vervolgens kopieren.
Daarna kun je ze plakken met plakken speciaal.Rechtsonder in het scherm vink je transponeren aan. Excel zet dat de kolommen in rijen en andersom. Is dat wat je bedoeld?
 
Hoi Coolen,

Wat jij wilt kan wel maar werkt alleen per record. Als ik de eerste 14 regels kopieer en transponeer komen de records naast elkaar op 1 regel te staan ipv onder elkaar.

Jeroen
 
Geplaatst door jzeedijk
Hoi Coolen,

Wat jij wilt kan wel maar werkt alleen per record. Als ik de eerste 14 regels kopieer en transponeer komen de records naast elkaar op 1 regel te staan ipv onder elkaar.

Jeroen

Weet je dat zeker; wat gebeurt er als je de range waarnaar je transponeert (pfoei en dat is nog goed nederlands ook) uitbreidt tot drie cellen; of drie cellen en een stuk naar beneden?
 
Amadeus,

Als de regelmaat en kolom A en B erin blijft,
dan doet de macro zijn werk.
 

Bijlagen

Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan