Nerd-alert! Regelmatig schrijf ik hier over mijn spreadsheets, onlangs publiceerde ik nog een nieuwe versie. Een beetje een uit de hand gelopen hobby. Hield ik eerst eenvoudigweg mijn uitgaven en mijn beleggingen bij, in de loop van de jaren is vrijwel al het handwerk weg geautomatiseerd. Rapportjes downloaden bij mijn bank en mijn aandelenbroker, op de knop drukken, en alles is weer bijgewerkt.
De spreadsheets zijn af?
Een paar jaar geleden dacht ik dan ook dat ze wel klaar waren, die spreadsheets. Maar niets is minder waar. Ik blijf dingen bijbouwen. Maar het karakter van de nieuwe bouwsels is wel veranderd. Steeds vaker gaat het om rapportjes en grafieken. Dingen die inzichtelijk maken hoe mijn financiële situatie zich ontwikkelt.
Zo heb ik inmiddels een collectie van bijna 50 verschillende grafieken verzameld, verdeeld over mijn verschillende spreadsheets. En daar was iets mee. Ik heb er nooit rekening mee gehouden dat de collectie zo groot zou worden. En de programmacode was dus een beetje inefficiënt. En zo rommelig dat ik er zelf geen wijs meer uit werd. De eerste grafieken waren bij elkaar geknipt en geplakt, omdat ik destijds zelf nog niet zo goed begreep hoe Excel die grafieken nou opbouwde. Inmiddels begrijp ik dat een stuk beter. Het werd er ook allemaal een beetje traag van. En ze zagen er allemaal net iets anders uit, er was geen consistente ‘huisstijl’ en kleurstelling, met allerlei kleine inconsistenties en onvolkomenheden. Het was dus eigenlijk gewoon tijd voor een grote verbouwing. Maar een grote verbouwing is ook een tijdrovende verbouwing. En daar zag ik een beetje tegenop.
En toen kwam de Corona-tijd. Ik weet niet hoe het jullie vergaat, maar na een week of 10 aan thuisquarantaine was ik wel even uitgelezen en snakte ik naar iets anders. En waren er een paar extralange weekenden. Waarin we niet echt weg konden / mochten. Een prima moment voor een extralange programmeerklus dus. Tijd voor de grote grafiekenschoonmaak…
Eerst denken dan bouwen
Voordat ik begon heb ik een analyse gemaakt van al mijn grafieken. Uiteraard in een grote spreadsheet. De naam, het soort grafiek, waar komt de data vandaan, hoe wordt de y-as samengesteld, wat zijn de dataseries, kenmerken als kleuren en lijndiktes, de berekeningen van minimum en maximumwaarden op de Y-as, de kenmerken van de assen, datalabels, dat soort dingen. In totaal 214 kenmerken per grafiek.
Gaande die analyse ontstond er een beeld. Ik heb zoveel mogelijk kenmerken verzameld die uniform waren (of dat zouden moeten zijn). Hoe de assen ingericht waren, en de ‘gridlines’ (de horizontale hulplijnen) in de grafiek. Maar ook het lettertype, en de lettergrootte en andere kenmerken van de astitels en eventuele legenda’s. Noem het maar de ‘huisstijl van mijn grafieken’. En daarmee ontstond er een nieuwe opzet voor de manier waarop ik grafieken programmeer. Niet meer met één heel grote en onoverzichtelijke routine, maar in brokken. Daar wordt het overzichtelijker van, en sneller.
Al mijn spreadsheet hebben een grafiekenpagina. Daar heb je een aantal keuzemogelijkheden. Je kunt bijvoorbeeld uit een lijstje de grafiek kiezen die je wilt zien. En bijvoorbeeld een periode kiezen of een begin- en einddatum instellen. Als ik dat doe en nu op mijn grafiekenpagina op de ‘Charts’ knop druk, dan wordt er eerst een Centrale Grafieken procedure aangeroepen. Die zorgt ervoor dat de gemaakte keuzes verwerkt worden, zo wordt bijvoorbeeld het begin- en eindpunt van de X-as berekend. Ook wordt de oude grafiek op de grafiekenpagina weggegooid en vervangen door een nieuwe, lege grafiek met alle uniforme stijlkenmerken. Vervolgens worden specifieke variabelen voor de grafiek verzameld, die her en der in de spreadsheets staan. En tenslotte wordt er een specifieke Grafiekprocedure aangeroepen, met alle variabelen.
Ook in die specifieke Grafiekprocedure vinden weer een aantal stappen plaats. De procedure begint met het instellen van een aantal specifieke parameters voor die grafiek. Het soort grafiek bijvoorbeeld, de titels, dat soort dingen. Daarna worden de X-as en de verschillende dataseries samengesteld. Als derde worden die dataseries in de grafiek geplaatst en krijgen ze hun kenmerken mee, zoals kleur. En tenslotte worden (indien nodig) datalabels aan de series toegevoegd. En voila, er staat een grafiek op mijn scherm. In een fractie van een seconde. Schematisch is het weergegeven in onderstaande figuur.
De Vermogens-Waterval
Een dag of drie programmeerwerk. Daarmee had ik alle 48 grafieken in mijn vier spreadsheets (administratie, beleggingen, hypotheek en dashboard) in deze nieuwe structuur gegoten. Ik ben er erg blij mee. Maar daarmee was ik er nog niet. Er stond namelijk al heeeeeel lang een specifieke grafiek op mijn wensenlijstje.
Deze.
Een watervalgrafiek die me per kwartaal laat zien hoe de verschillende onderdelen van mijn vermogen veranderd zijn. Groen als er een stijging is, rood als er een daling is. En aan het eind een kolom die de netto stijging (of daling, dat komt ook voor) voor dat specifieke kwartaal laat zien. De brongegevens hiervoor zitten al jaren in mijn Dashboard-spreadsheet.
Sinds Office 2016 zit er standaard een watervalgrafiek in Excel, maar ik heb nog geen enkele manier gevonden om die rechtstreeks aan te spreken in Visual Basic. De macro-recorder laat me hier in de steek. Op de diverse fora waar ik de oplossingen voor mijn programmeerprobleempjes zoek las ik dat ze inderdaad (nog) geen onderdeel van het objectmodel van Excel zijn, en dat ze dus niet te programmeren zijn. De versie van het eerste kwartaal was dus handmatig samengesteld.
Maar ik vond ook deze beschrijving. Die een waterval stapsgewijs opbouwt met de hulp van een tijdelijke dataset en een standaard kolommengrafiek. Die ik allebei wel helemaal kan programmeren. En ik houd wel van een uitdaging. Dus ik ben aan de slag gegaan. Het kostte me anderhalve dag. Maar het is me gelukt. Met één druk op de knop verschijnt er nu mijn eigen geautomatiseerde waterval. Jij zult denken ‘boeiuh’, maar ik kan echt genieten van dit soort dingen!
De Anonimiser
Veel grafieken gebruik ik ook hier op mijn blog. Maar ik wil niet altijd mijn cijfers delen. In het verleden bewerkte ik die grafieken dan met het grafisch bewerkingsprogramma GIMP zodat de cijfers onzichtbaar werden. Maar ook dat is nu volledig geautomatiseerd. Mijn grafiekenpagina’s hebben nu allemaal een Anonimiseer-knop. Die verbergt de bedragen met één druk op de knop (en laat ze met een nieuwe druk op de knop ook weer verschijnen). Het werkt voor bedragen op de Y-assen en verbergt ook datalabels. Alleen als het bedragen zijn, percentages mogen blijven staan. Daarna kan ik de grafiek meteen op mijn blog gebruiken. Ook hier dus geen handwerk meer.
De 48 grafieken
En nu zijn er dus 48 grafieken. Inmiddels al 49 met die waterval. Ook dat is een tussenstand, want ik heb nog wel wat meer ideetjes. Die ik in mijn nieuwe structuur makkelijker uit kan werken, dat dan weer wel. In de onlangs vernieuwde versie van de Financiële Administratie op mijn Downloads-pagina kun je zien hoe de grafieken en de Visual Basic programmacode eruit zien. En hieronder een bloemlezing van mijn vernieuwde grafieken… Allemaal één druk op de knop.
Bijt jij je ook wel eens helemaal vast in een volkomen nutteloos onderwerp?
Lekker bezig. Zelf kan ik mij er niet toe aanzetten om de excels “slimmer” te maken. Ze voldoen prima en alles werkt naar behoren. Hoewel het soms verleidelijk is om wel te beginnen
Wees voorzichtig! Als je eenmaal begint is er geen weg terug meer….
Heel tof! Goeie inspiratie om grafieken te maken in Google sheets. Heb dat helaas nog steeds niet goed onder de knie… Denk dat ik net een linkje mis in het begrijpen hoe de grafiek opbouw werkt in Sheets. Als ik het doorheb ga ik deze post zeker als inspiratie gebruiken.
Gaaf man! Hier ben ik echt stik jaloers op.
Ik moest erg lachen om de titel!
Maar o wat zou ik graag zo’n grafische weergave van ‘stand van zaken eigen woning’ willen kunnen maken…aan die andere 47 ben ik nog niet aan toe…
Mooi man, ik was ongeduldig aan het lezen tot ik bij de grafieken kwam ?.
Je kunt ook gewoon doorscrollen, lezen is niet verplicht…
Inderdaad een erg hoog nerd gehalte, daar houd ik wel van ;-). Overigens heb ik gelijk een vraag over je waterval grafiek: je schreef laatst dat je vriendin en jij 1 gezamenlijke rekening hebben voor de lasten en een eigen persoonlijke rekening er naast. Is zo’n waterval grafiek zoals je die nu toont nu een afspiegeling van je eigen rekening?
Dit is inderdaad een afspiegeling van mijn persoonlijke vermogen en mijn eigen bankrekeningen en beleggingen. Dus in het geval van het huis reken ik met de bedragen die ik zelf inleg voor aflossing, en in het geval van de WOZ-waarde reken ik met 50%. Ook de hypotheekschuld neem ik in mijn eigen grafieken maar voor de helft mee. De aflossing van het huis doen we niet naar draagkracht, maar 50/50.
Respect, hoor. Ik heb me er zelf nooit toe kunnen zetten zoveel tijd te steken in excel. Ik gebruik alleen simpele formules en simpele grafieken.
Voor de grafieken die ik wél heb gebruik ik aparte tabbladen met “grafiek brondata” zodat hiervan een grafiek maken simpel is. Doe jij ook iets dergelijks?
Alle grafieken werken met brondata, maar die staat op verschillende plekken in de spreadsheet. In de algemene procedure staat voor elke grafiek de verwijzing naar de brondata als variabele (voor werkblad en regel(s) en/of kolom(men)), die wordt daarna hergebruikt in de grafiekprocedure. Als ik dan mijn spreadsheet weer eens verbouw en de data verplaats hoef ik het maar op één plek aan te passen.
Ziet er goed uit!
Ga je in de tweede Corona-golf dan eindelijk je lelijke WordPress installatie aanpakken?
Nee hoor, die pak ik pas aan als ik ‘m zelf lelijk ga vinden. En ik heb geen smaak, dat is algemeen bekend. Al bijna 5 jaar hetzelfde Theme….
Ik vind ‘m minimalistisch en mooi! Maar bovenal een verademing dat er geen advertenties tussen staan zoals bij veel andere FIRE blogs.
Ik ook. Af en toe zoek ik naar andere (nieuwe) minimalistische Themes, maar heb er nog geen gevonden die waarde toevoegt ten opzichte van mijn huidige Theme. En advertenties zijn een keuze/instelling…. Ik beperk me tot eentje in de zijlijn en eentje in de voettekst.
Ik vind je site juist lekker rustig en strak, laat maar zo hoor! En wat betref al die Excelsheets met grafieken: respect!!
Ik zeg alleen maar wauw!
Enorm gaaf gedaan, ik kan dat wel waarderen zoveel moeite ergens insteken. Leuk! Zeker die woninggrafiek vind ik erg tof.