Springen naar inhoud

Excel 2007


  • Log in om te kunnen reageren

#1

MacHans

    MacHans


  • >250 berichten
  • 500 berichten
  • Ervaren gebruiker

Geplaatst op 30 maart 2009 - 11:54

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.jpg

Oplossing.jpg

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.

Veranderd door MacHans, 30 maart 2009 - 11:54


Dit forum kan gratis blijven vanwege banners als deze. Door te registeren zal de onderstaande banner overigens verdwijnen.

#2

jkien

    jkien


  • >1k berichten
  • 3054 berichten
  • Moderator

Geplaatst op 30 maart 2009 - 12:13

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.

Veranderd door jkien, 30 maart 2009 - 12:13


#3

MacHans

    MacHans


  • >250 berichten
  • 500 berichten
  • Ervaren gebruiker

Geplaatst op 30 maart 2009 - 12:31

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.jpg

Werkniet2.jpg

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).

#4

jkien

    jkien


  • >1k berichten
  • 3054 berichten
  • Moderator

Geplaatst op 30 maart 2009 - 12:51

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

Veranderd door jkien, 30 maart 2009 - 12:53


#5

E.Desart

    E.Desart


  • >1k berichten
  • 2391 berichten
  • VIP

Geplaatst op 30 maart 2009 - 14:22

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

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

#6

MacHans

    MacHans


  • >250 berichten
  • 500 berichten
  • Ervaren gebruiker

Geplaatst op 31 maart 2009 - 08:17

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?

#7

E.Desart

    E.Desart


  • >1k berichten
  • 2391 berichten
  • VIP

Geplaatst op 31 maart 2009 - 16:53

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.

Veranderd door E.Desart, 31 maart 2009 - 16:56

Eric

#8

MacHans

    MacHans


  • >250 berichten
  • 500 berichten
  • Ervaren gebruiker

Geplaatst op 01 april 2009 - 11:01

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.jpg

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.

Veranderd door MacHans, 01 april 2009 - 11:05


#9

E.Desart

    E.Desart


  • >1k berichten
  • 2391 berichten
  • VIP

Geplaatst op 01 april 2009 - 13:01

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 .....

Veranderd door E.Desart, 01 april 2009 - 13:13

Eric

#10

MacHans

    MacHans


  • >250 berichten
  • 500 berichten
  • Ervaren gebruiker

Geplaatst op 01 april 2009 - 14:52

Ik ben eerst zelf nog even goed gaan kijken, de bedoeling was:

Zo_is_het.jpg

Ombouwen naar:

Zo_moet_het.jpg

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.jpg
(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.jpg

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.

#11

E.Desart

    E.Desart


  • >1k berichten
  • 2391 berichten
  • VIP

Geplaatst op 01 april 2009 - 15:39

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





0 gebruiker(s) lezen dit onderwerp

0 leden, 0 bezoekers, 0 anonieme gebruikers

Ook adverteren op onze website? Lees hier meer!

Gesponsorde vacatures

Vacatures