Gebruikersavatar
MacHans
Artikelen: 0
Berichten: 500
Lid geworden op: di 11 nov 2008, 14:56

Excel 2007

Hey,

Ik heb een probleem met Excel 2007, en ik heb geen idee hoe ik dit moet oplossen.

Er is een kolom met verschillende elementen, met erachter nog een kolom met elementen. Wat ik wil is uit kolom A de unieke elementen filteren, en de bijbehorende elementen uit kolom B erachter in een rij samenvoegen, zoals hier:
Probleem
Probleem 661 keer bekeken

Oplossing
Oplossing 629 keer bekeken
Hierboven heb ik het met de hand gedaan, maar ik moet zo'n soort bewerking toepassen op een kolom met enkele honderden elementen, waarvan er zo'n 50 uniek zijn. Ik hoop dat dit mogelijk is, en dat iemand me het kan uitleggen.

Alvast bedankt,

MacHans.
Gebruikersavatar
jkien
Moderator
Artikelen: 0
Berichten: 5.693
Lid geworden op: ma 15 dec 2008, 14:04

Re: Excel 2007

Een makkelijke procedure is: zet de cursor in ergens in de data, kies in het menu Data / List / Create List. Dan krijgen beide kolommen een header: colum1 en column2. Klik op de header van column1 en kies in de keuzelijst die dan verschijnt voor het filter Hans, Snah of All.
Gebruikersavatar
MacHans
Artikelen: 0
Berichten: 500
Lid geworden op: di 11 nov 2008, 14:56

Re: Excel 2007

Een makkelijke procedure is: zet de cursor in ergens in de data, kies in het menu Data / List / Create List. Dan krijgen beide kolommen een header: colum1 en column2. Klik op de header van column1 en kies in de keuzelijst die dan verschijnt voor het filter Hans, Snah of All.
Ik krijg nu niet het gewenste effect, misschien doe ik iets fout, of misschien begreep je niet precies wat ik wou bereiken:
Werkniet1
Werkniet1 619 keer bekeken
Werkniet2
Werkniet2 619 keer bekeken
Ik krijg nu alle 'hans' en 'snah' te zien, met erachter de cijfers. Maar wat ik wil is één 'hans' met de cijfers 1, 2, 3, en 5 erachter. En één 'snah' met 11 en 33 erachter. Dus 11 in kolom B, 33 in kolom C (of andersom).
Gebruikersavatar
jkien
Moderator
Artikelen: 0
Berichten: 5.693
Lid geworden op: ma 15 dec 2008, 14:04

Re: Excel 2007

Je kunt ook sorteren op de eerste kolom, en dan wat copieren en plakken.

Als je de rijtjes heel graag horizontaal wilt krijgen dan 'Paste Special' en 'Transpose' gebruiken
Gebruikersavatar
E.Desart
Artikelen: 0
Berichten: 2.391
Lid geworden op: wo 10 okt 2007, 14:47

Re: Excel 2007

MacHans schreef:Ik krijg nu niet het gewenste effect, misschien doe ik iets fout, of misschien begreep je niet precies wat ik wou bereiken:

[attachment=3357:Werkniet1.jpg]

Ik krijg nu alle 'hans' en 'snah' te zien, met erachter de cijfers. Maar wat ik wil is........En één 'snah' met 11 en 33 erachter. Dus 11 in kolom B, 33 in kolom C (of andersom).
Begrijp je jkien met zijn kopieren en plakken? Dat transponeren zit bij plakken speciaal.

Je kan niet anders dan een deel manuele arbeid doen, anders moet je een macro schrijven.

Kom je dit vaak tegen of is dit een éénmalige oefening?
Eric
Gebruikersavatar
MacHans
Artikelen: 0
Berichten: 500
Lid geworden op: di 11 nov 2008, 14:56

Re: Excel 2007

E.Desart schreef:Je kan niet anders dan een deel manuele arbeid doen, anders moet je een macro schrijven.

Kom je dit vaak tegen of is dit een éénmalige oefening?
Ik heb helaas geen ervaring met macro's schrijven, en ik wil dit vaker gebruiken.

Het zit zo, ik werk bij een marktonderzoeksbureau, en het komt vaak voor dat er in onze (online) vragenlijsten open antwoordblokken staan.

Om iets met de data die daaruit komt te kunnen doen, hebben we een nacodeerproces. Aan de hand van de open antwoorden die gegeven zijn, wordt er een lijst met antwoorden gemaakt, met elk een code. Vervolgens wordt er in Excel een lijst gemaakt waar alle open antwoorden in zitten, die lijst is zo gemaakt dat het ook een soort script is:

Er staat zoiets als:

IF \Commentaar: Gegeven antwoord\ Respondentnummer = xxxxxxxx ; Zet antwoord y aan ;

Wat er gebeurt is dat iemand het gegeven antwoord leest, en aan de hand van een codeboek een getal op de plek van y neerzet. Maar het ding is, dat er van de bijvoorbeeld 2000 open antwoorden, vaak maar iets van 100 unieke tussen zitten.

Dus ik dacht, als de IF-constructie wordt aangepast, zodat er staat, IF respondentnummer = xxxx of xxxxx of xxxxx, zet dan antwoord y aan.

Dus dat alle respondentnummers met hetzelfde gegeven antwoord bij elkaar worden gezet, en daarmee het antwoord maar een keer gelezen hoeft te worden.

Zijn er goede beschrijvingen/boeken over hoe je een macro in Excel (2007) kunt maken?
Gebruikersavatar
E.Desart
Artikelen: 0
Berichten: 2.391
Lid geworden op: wo 10 okt 2007, 14:47

Re: Excel 2007

MacHans schreef:Ik heb helaas geen ervaring met macro's schrijven, en ik wil dit vaker gebruiken.

Zijn er goede beschrijvingen/boeken over hoe je een macro in Excel (2007) kunt maken?
Natuurlijk zijn er goede Excel boeken en forums voor Excel. Maar voor je de eerste macro maakt ben je wel even zoet.

Ik wil morgen wel eens proberen iets te maken voor jou.

Ik ga er van uit dat je voorbeeld duidelijk was.

Geef even het maximum aantal rijen dat je kan hebben en het maximum aantal kolommen dat kunnen ontstaan.

Het is maar om een idee te hebben. Ik kan maximum tot ca 240 kolommen gaan.

En je vertrekt dus van 2 kolommen zoals in het voorbeeld?

Geef anders een klein Excel filetje met een voorbeeldje als bijlage hier.
Eric
Gebruikersavatar
MacHans
Artikelen: 0
Berichten: 500
Lid geworden op: di 11 nov 2008, 14:56

Re: Excel 2007

E.Desart schreef:Natuurlijk zijn er goede Excel boeken en forums voor Excel. Maar voor je de eerste macro maakt ben je wel even zoet.

Ik wil morgen wel eens proberen iets te maken voor jou.

Ik ga er van uit dat je voorbeeld duidelijk was.

Geef even het maximum aantal rijen dat je kan hebben en het maximum aantal kolommen dat kunnen ontstaan.

Het is maar om een idee te hebben. Ik kan maximum tot ca 240 kolommen gaan.

En je vertrekt dus van 2 kolommen zoals in het voorbeeld?

Geef anders een klein Excel filetje met een voorbeeldje als bijlage hier.
Ik heb er een gevonden, dit onderzoek ging over een nieuwe site met info over huisdieren, en er was een open vraag waarin aangegeven moest worden welke sites men bezoekt als ze opzoek zijn naar informatie over huisdieren.
Lastig
Lastig 625 keer bekeken
Dit bestand is al nagecodeerd, eerst stond er ON V1 . ; ENDIF ;, en vervolgens wordt er op de lege plek handmatig een getalletje ingevult aan de hand van een codeboek. Dit excelbestand werd daarna omgezet in een textbestand, waarna er bijvoorbeeld IF \dierenwinkel \ S_Respnr == xxxxxxxxx ; ON V1.30 ; ENDIF ; komt te staan, waarbij \dierenwinkel \ niet wordt gelezen door het programma, omdat het tussen \\ staat.

Maar ik zie nu wel een probleem, eerst gaf ik aan dat het commentaar in een aparte kolom stond, maar dit staat samen met het respondentnummer:

IF \Commentaar \ S_Respnr == xxxxxxxxx ;. Dus ik weet niet of heb mogelijk is om dit te scheiden in twee aparte kolommen..

Het uiteindelijke doel is namelijk:

IF \Commentaar \ S_Respnr == xxxxxxxxx | S_Respnr == yyyyyyyyy | S_Respnr == zzzzzzzzz ; ON V1 . 11 ; ENDIF ;

Waarbij | óf betekend.

**Ohja, er zijn dus altijd 6 kolommen, maar het aantal rijen loopt wel eens op tot (een paar) duizend.
Gebruikersavatar
E.Desart
Artikelen: 0
Berichten: 2.391
Lid geworden op: wo 10 okt 2007, 14:47

Re: Excel 2007

MacHans schreef:Het uiteindelijke doel is namelijk:

IF \Commentaar \ S_Respnr == xxxxxxxxx | S_Respnr == yyyyyyyyy | S_Respnr == zzzzzzzzz ; ON V1 . 11 ; ENDIF ;

Waarbij | óf betekend.

**Ohja, er zijn dus altijd 6 kolommen, maar het aantal rijen loopt wel eens op tot (een paar) duizend.
Ik ben niet zeker van je doelstelling:

Is het nu de bedoeling dat je dit alles krijgt in één cel exact geschreven als:

IF \Commentaar \ S_Respnr == xxxxxxxxx | S_Respnr == yyyyyyyyy | S_Respnr == zzzzzzzzz ; ON V1 . 11 ; ENDIF ;

Waarbij commentaar een variabele is zoals je uitlegde in de vorige voorbeelden.

Of zet ik al deze dingen in opeenvolgende cellen waarbij S_Respnr == xxxxxxxxx in individuele kolommen komt, of samenvoegen in één cel?

Je start blijkt 6 kolommen, maar hoeveel worden het er maximaal?

Gebruik jij die zinnen zo voor export naar, of import in een verder programma? Moet die S_Respnr == telkens herhaald worden? enz?

Schrijf nu eens exact een uitgewerkt voorbeeldje in Excel (al is het maar één resulterende regel) zodat ik kan zien hoe jij het eindresultaat het liefst zou hebben? Ik kan mij niet goed voorstellen dat jij een kolom wil houden met niets in dan IF of ENDIF, of je wil hier een nieuwe tekstregel van maken voor export naar iets anders.

Als je wil dat ik overbodige, zich steeds herhalende tekststrings weg filter, en alleen nuttige variabelen in kolommen zet kan dat ook.

Zoals ik het nu voorlopig zie zet ik de nieuw opgebouwde lijst op een nieuw werkblad, zodat ik steeds van je origineel afblijf. Dus zeg gewoon hoe die nieuwe lijst er moet uitzien op de meeste elegante en praktische manier.

Je kan er tabel hoofdingen bijzetten, borders formateren, wat ook .....
Eric
Gebruikersavatar
MacHans
Artikelen: 0
Berichten: 500
Lid geworden op: di 11 nov 2008, 14:56

Re: Excel 2007

Ik ben eerst zelf nog even goed gaan kijken, de bedoeling was:
Zo_is_het
Zo_is_het 620 keer bekeken
Ombouwen naar:
Zo_moet_het
Zo_moet_het 623 keer bekeken
Maar het probleem is dat wanneer je honderd keer hetzelfde antwoord hebt, je een gigantische IF voorwaarde krijgt (honderd respondentnummers). We gebruiken nogal oude software, en dat trekt hij niet, dus zal je ze weer moeten ombouwen naar meerdere kleinere IF constructies.

En dat kan volgensmij véél makkelijker, hoe je ook zou kunnen nacoderen is:
Nieuw
Nieuw 619 keer bekeken
(hier is dus V1 een open vraag die gesteld wordt, en V1_Nacodeer een vraag 'achter de schermen' die we zelf vullen, in kolom E wordt hier een cijfer neergezet)

Even voor de duidelijkheid, de data die uit een onderzoek komt bestaat uit een heleboel regels, vol met cijfers en letters.

Aan het begin van elke regel staat een nummer, het respondentnummer. Bij nacoderen volgens de methode die we nu gebruiken (die ik eerder liet zien), wordt de data ook regel voor regel ingelezen. Elke keer komt hij bij een nieuwe regel, en dus respondent, en met de gegevens uit die regel (geslacht, leeftijd, antwoorden op de vragen, enz) kun je allemaal bewerkingen doen. Het nacodeer bestand is ook zo'n bewerking als je hem in het script zet.

Het is (denkik) veel makkelijker om wat er in het plaatje hierboven staat, te veranderen in:
Nieuw2
Nieuw2 619 keer bekeken
Ik gok zo dat dit makkelijker is dan wat ik hiervoor voorstelde. Misschien kan het zelfs handmatig? Waar ik heen wil is dat als er in kolom B iets staat wat ergens anders ook in kolom B voorkomt, hij de hele regel verwijderd, zodat je alleen unieke waardes overhoud voor kolom B.
Gebruikersavatar
E.Desart
Artikelen: 0
Berichten: 2.391
Lid geworden op: wo 10 okt 2007, 14:47

Re: Excel 2007

En waar staan nu de variabelen in je laatste figuur S_Respnr == xxxxxxxxx | S_Respnr == yyyyyyyyy | S_Respnr == zzzzzzzzz die je in één rij wou krijgen naast een unieke commentaar?
Eric

Terug naar “Informatica en programmeren”