Tuesday, January 13, 2009

Data manipulatie in Excel


Voor mensen die grote hoeveelheden gegevens willen manipuleren in excel kan het gebruik van een kleine macro van Chip Pearson, die CaseConvert heet, nuttig zijn. Nou lijkt het als je naar de naam luisterd alsof je met deze xla alleen maar tussen kleine en hoofdletters kunt kiezen, maar dat is zeker niet waar. Je kunt heel gemakkelijk b.v. alle dubbele spaties ergens uithalen, of alle spaties aan het begin of het einde, of alle getallen met een factor vermenigvuldigen, of b.v. de eerste 3 tekens/cijfers weghalen, etc. Let op! dit is geschreven voor de Engelstalige versie, lees even verder om dit snel aan te passen.

Je kunt het xla programmaatje natuurlijk openen als je het nodig hebt, maar ik heb het in mijn Excel start folder staan zodat dit programma altijd in de menu balk staat (Tools, Convert Text). Omdat in de Nederlandse versie van Excel geen menu "Tools" bestaat zal je deze macro eerst moeten aanpassen. Dit kan gelukkig omdat het gedeelte waarin het menu aangepast wordt niet beveiligd is. Door, nadat CaseConvert is geopend, op [Alt]+[F11] te drukken. Daarna ga je naar het gedeelte ModMain (in linker gedeelte) en pas je de regel
{With Application.CommandBars("Worksheet Menu Bar").Controls("Tools").Controls.Add}
in de Auto_open() macro aan waarbij je de tekst "Tools"vervangt door een Nederlandse menu titel (en dat is weer afhankelijk van welke versie van Excel (2000/2003/XP/2007) je hebt).

Veel van de zaken die ik hier beschrijf kun je ook oplossen door formules, maar hoewel ik veel gegevens heb geanalyseerd m.b.v. formules, helpt dit kleine programmatje nog steeds geweldig. Let wel op hoe je het afsluit want de laatste instelling wordt onthouden, en dat wil je nog wel eens over het hoofd zien als je het programmatje opnieuw gebruikt.

Probleem met foutmeldingen in VBA opgelost.

Een tijdje geleden had ik mijn laptop met XP professional d.m.v. een ghost image opnieuw opgezet en vanaf die dag werkte CaseConvert niet meer, bummer! Na wat spitten ben ik erachter gekomen dat ik in excel VBA mijn setting had staan op "Break on all errors". Hierdoor leiden ook fouten die na een "On Error Resume Next" instructie stonden tot een zichtbare fout. Nadat ik dit had terug gezet naar "Break on unhandled errors" draait alles weer zoals het hoort.

Het ultime manipuleren, heel intuïtief.... maar toch...

Voor mensen die het geen probleem vinden hun gegevens "op straat" te zetten, kun je ook terecht bij CleanUpData een Web 2.0 site die het wel heel attractief maakt om je gegevens aan hen over te dragen als je snel en eenvoudig grote hoeveelheden aan gegevens wilt aanpassen.


No comments:

Post a Comment