Het is al ruim vier jaar geleden dat ik voor het laatst een versie van mijn beleggingsspreadsheet online gezet heb. Die versie is nogal gedateerd en eigenlijk niet meer aan de praat te krijgen. Mijn eigen spreadsheet is veel verder doorontwikkeld en vereenvoudigd, ik heb er inmiddels tien jaar aan beleggingsdata in zitten. Tijd dus om de meest actuele versie met jullie te delen. Met grote dank aan bloglezer F. voor allereerst het verzoek om de meest recente versie van mijn spreadsheet te delen, en daarna het testen en de waardevolle verbeteringen die hij heeft gedeeld! 🎉
Het delen van deze spreadsheet is ook handig voor mijzelf. Want deze beleggingsspreadsheet is momenteel mijn belangrijkste resterende hindernis om helemaal afscheid te kunnen nemen van Microsoft 365 / Microsoft Office. De komende periode denk ik na of en hoe ik de functionaliteit van mijn beleggingsspreadsheet wil migreren naar iets anders. Eisen daarbij zijn in elk geval open-source, en mijn data in eigen beheer. De afgelopen 10 jaar heb ik gebruik gemaakt van 4 verschillende brokers. Maar ik heb nog zicht op mijn volledige beleggingshistorie en rendement, juist ómdat ik mijn eigen beleggingen beheer met mijn eigen spreadsheet. Het is voor mijzelf dus ook goed om weer eens kritisch naar de functionaliteit van deze spreadsheet te kijken. En ik heb eigenlijk nog niets gevonden wat mijn informatiebehoefte beter afdekt dan mijn eigen spreadsheet.
Dit is een lange blogpost. Maar ik raad je van harte aan om ‘m eerst goed te lezen voordat je met de spreadsheet gaat klooien…
Opbouw van de spreadsheet
De volgende gegevens werk ik regulier bij in mijn beleggingsspreadsheet:
Op het werkblad Transactions leg ik alle beleggingstransacties vast. Aankopen, verkopen, maar ook ontvangsten van dividend in aandelen of cash. De spreadsheet kan ook werken met aandelensplits en warrants, maar die functionaliteit heb ik nog nooit gebruikt.
Op het werkblad Cash leg ik alle transacties vast die plaatsvinden op mijn beleggingsrekeningen, en tussen mijn beleggingsrekeningen en de portefeuille en mijn tegenrekening.
Op het werkblad FundHistory leg ik elke week de actuele aandelenkoers vast voor elk fonds dat ik op dat moment in portefeuille heb. Hiervoor maak ik eerst een ‘Snapshot’ via de knop op het werkblad Dashboard. Daarachter zit een macro die op basis van de transacties doorrekent hoeveel aandelen van het betreffende fonds ik op dat moment bezit, en vervolgens via de Aandelen-functies van Excel de actuele koers ophaalt. Die macro rekent ook uit wat op dat moment de actuele waarde van de betreffende positie is, en die wordt opgeslagen op het werkblad FundValue.
Voor de werkbladen FundHistory, FundValue en TotalValue is de kolom de centrale sleutel. Elke kolom op deze drie werkbladen moet op de eerste regel dezelfde datum hebben staan. Wijk je hier van af, dan lopen vrijwel alle berekeningen in de spreadsheet in de soep!
Dan is er ook nog het werkblad Portfolio. Daar wordt per fonds een hele serie statistiekjes bijgehouden, die gebruikt worden in allerlei rapportages op andere werkbladen. Die statistieken worden automatisch herberekend na het (in mijn geval wekelijks) bijwerken van de koersen en de waarde, en uiteraard als de spreadsheet geopend wordt.
Zoals al mijn spreadsheets heeft ook deze een werkblad Charts, waar je allerlei grafieken kunt raadplegen over je portefeuille. Ook mijn favoriete beleggingsgrafiek.
Het werkblad Actual bestaat uit twee delen. Bovenaan een aantal algemene statistiekjes over de huidige stand van de portefeuille. Daaronder vind je een draaitabel met per positie de (voor mij persoonlijk) belangrijkste statistiekjes. NB: Soms krijg je een foutmelding bij het openen van het tabblad “Actual”. De foutmelding is : “Can’t open PivotTable source file [Naam v/d Excel]Portfolio’. Dat kun je oplossen door op de Pivot Table te gaan staan, en via het ‘Analyze’ menu, te kiezen voor ‘Change Data Source’, en het pad te verwijderen, zodat alleen nog ‘Portfolio!$A:$AK’ overblijft. Excel schijnt dit gedrag vaker te vertonen als een Excel-bestand gedownload wordt en in een ander pad (lokaal) wordt gezet.
Dan het werkblad Advisor. Hier houd ik de gewenste verdeling van mijn portefeuille bij. Op basis van de actuele waarde geeft dit werkblad mij een advies welk fond ik deze maand bij moet kopen om dichter bij de door mij gewenste portefeuilleverdeling te komen. Dat is geen groots geheim algoritme, de spreadsheet kijkt gewoon welk fonds het verst verwijderd is van de gewenste verdeling…
Op het werkblad Fund kun je elk fonds uit je portefeuille kiezen en in één oogopslag zien hoe de prestaties van dit fonds in jouw portefeuille zijn geweest. Ook haalt dit werkblad alle transacties in dit fonds in één overzicht bij elkaar. En je kunt een grafiek met de koers en/of waarde van dit fonds in jouw portefeuille laten zien, voor verschillende tijdsperiodes.
Het werkblad Dashboard is ook een oude bekende uit al mijn spreadsheets. Hiervandaan bedien je de macro’s, en er zijn ook allerlei statistiekjes te vinden.
Verschillen ten opzichte van de vorige versie
De afgelopen vier jaar heb ik meer dan honderd grote en kleine aanpassingen gedaan aan mijn beleggingsspreadsheet. De belangrijkste zet ik voor je op een rijtje.
In het verleden had ik knoppen op het Dashboard die mij leidden naar formulieren om aandelentransacties en cashtransacties toe te voegen. Daar ben ik mee opgehouden, ik werk de transacties nu handmatig bij op de werkbladen Cash en Transactions. Dat is toch gewoon de snelste manier…. De knop om een fonds toe te voegen of te wijzigen heb ik wel gehandhaafd. Die gegevens moeten namelijk tegelijkertijd op een aantal verschillende werkbladen geplaatst worden. Dat is té foutgevoelig als ik dat met de hand ga doen.
Vroeger importeerde ik wekelijks een rapportje over mijn portefeuille dat ik downloadde bij mijn broker. Die functie is overbodig geworden door de aandelenfuncties van Excel. Gewoon één druk op de macro-knop en de actuele koersen worden binnengehaald. Ik heb zelfs een functie gebouwd om historische koersen van een bepaalde datum binnen te halen. Zo kan ik na een vakantie toch de stand van zaken van de tussenliggende weekenden bijwerken. Bijkomend voordeel is dat deze spreadsheet nu broker-onafhankelijk werkt. Alles wat je nodig hebt is Microsoft 365.
Er is functionaliteit bijgekomen die mijn Virtual All Time High bijhoudt, en verder allerlei andere statistiekjes. Alle grafieken zijn in 2020 vernieuwd en gestandaardiseerd. Ook is er nu een tabel met een kostenoverzicht dat ik jaarlijks gebruik voor mijn blogposts. Teveel om allemaal op te noemen.
Gebruiksklaar maken
Voor het eerste gebruik moet je de spreadsheet inrichten voor jouw portefeuille. Dat begint op het werkblad Settings. Je vult het financiële jaar in (nu dus 2023), en het startjaar. In de voorbeeldspreadsheet is dat 2020, ik heb een voorbeeld dataset toegevoegd van een eenvoudige belegger die sinds begin 2020 elke maand geld stort op zijn beleggingsrekening, en daarvan een beperkte set ETFs koopt.
Let op! Om de spreadsheet volledig te kunnen gebruiker moet je bij FixerIO een gratis API-key aanmaken, en die opslaan in het juiste veld op het werkblad Settings. De spreadsheet gebruikt deze API als bron van valutakoersen bij het herberekenen van sommige kolommen. Verwijder ook de volledige Fundlist op het werkblad Settings en op het werkblad Charts voordat je verder gaat.
Vervolgens ga je naar het werkblad Dashboard. Via de knop Fund | New Fund kun je nieuwe beleggingsfondsen toevoegen aan de spreadsheet. Het is van belang om dit te doen voordat je de eerste transacties invoert. Van elk fonds voer je een aantal gegevens in. Als je die opslaat worden de gegevens automatisch verwerkt op elk werkblad waar ze in de toekomst nodig zijn.
De gevraagde gegevens per fonds zijn de ISIN-code van het fonds, de fondsnaam, de afkorting van het fonds, de valuta waarin het fonds genoteerd is, en het Data Type. De meeste gegevens zijn makkelijk te vinden, behalve het datatype. Dat is de code die je nodig hebt om Excel de koers op te laten halen. Het format is altijd XXXX:YYYY, waarbij XXXX de code is voor de effectenbeurs waarop het fonds verhandeld wordt, en YYYY de ’ticker’ van het fonds. Voor mijn favoriete ETF VWRL is de ISIN-code IE00B3RBWM25, de naam ‘Vanguard FTSE All-World UCITS ETF’, en VWRL wordt verhandeld in Euro’s (EUR) op de effectenbeurs in Amsterdam, het datatype is dan ‘XAMS:VWRL’. Er staan een aantal voorbeelden in de spreadsheet.
Er zit nog een bug in de spreadsheet, waardoor hij niet kan omgaan met een situatie waarin er nog nooit een kolom met koersen is ingevoerd. Dat is een situatie die je alleen tegenkomt als compleet nieuwe gebruiker. Voor jouw startdatum moet je dus handmatig op het werkblad FundHistory een eerste kolom met koersen invoeren.
Overigens zijn er elk jaar na de jaarwisseling twee handmatige acties die ik moet verrichten om de spreadsheet klaar te maken voor het nieuwe jaar. Allebei op het werkblad Settings:
- Ik verander het veld Financial Year naar het nieuwe jaar, en
- In de lijst met Years aan de rechterzijde van het Settings werkblad voeg ik ook het nieuwe jaar toe. Let op, die lijst is een Named Range, het nieuwe jaar moet ook onderdeel zijn van die Range anders komt het niet tevoorschijn op keuzelijsten.
Transacties bijwerken
Zoals gezegd werk ik de transacties handmatig bij. Vrijwel elke aandelentransactie leidt ook tot een transactie op mijn beleggingsrekening. Hieronder een aantal voorbeelden.
Voorbeeld aankoop
Stel ik koop op 25 januari 2023 10 stuks VWRL tegen een koers van € 96,73. Daarvoor betaal ik € 6 transactiekosten. Op het werkblad Transactions ziet dat er als volgt uit:
Date | Action | Position | Number | Price | Fee | Total | Exchange Rate | Remarks |
25-01-2023 | BUY | VWRL | 10,00 | 96,73 | 6,00 | 973,30 | 1,0000 | Koop 10 VWRL @ 96,73 |
Het TOTAL bedrag is de uitgave aan de koop, aantal maal prijs per aandeel, PLUS de te betalen fee.
En de transactie op het werkblad Cash ziet er als volgt uit.
Date | Portfolio | EUR | USD | Other | Exchange Rate | Remarks |
25-01-2023 | 973,30 | -973,30 | 0,00 | 0,00 | 1,0000 | Koop 10 VWRL @ 96,73 |
Het geld wordt afgeboekt van mijn Euro-beleggingsrekening en bijgeboekt op mijn portefeuille.
Voorbeeld Verkoop
Stel ik VERkoop op 25 januari 2023 10 stuks VWRL tegen een koers van € 96,73. Daarvoor betaal ik € 6 transactiekosten. Op het werkblad Transactions ziet dat er als volgt uit:
Date | Action | Position | Number | Price | Fee | Total | Exchange Rate | Remarks |
25-01-2023 | SELL | VWRL | 10,00 | 96,73 | 6,00 | 961,30 | 1,0000 | Koop 10 VWRL @ 96,73 |
Het lijkt op de KOOP-actie uit het vorige voorbeeld. Maar de actie is nu SELL. En het TOTAL bedrag is de opbrengst van de verkoop, aantal maal prijs per aandeel, MINUS de te betalen fee.
En de transactie op het werkblad Cash ziet er als volgt uit.
Date | Portfolio | EUR | USD | Other | Exchange Rate | Remarks |
25-01-2023 | -961,30 | 961,30 | 0,00 | 0,00 | 1,0000 | Koop 10 VWRL @ 96,73 |
Het geld wordt nu afgeboekt van mijn portefeuille en bijgeboekt op mijn Euro-beleggingsrekening.
Voorbeeld cash dividend
Stel ik krijg op 28 december 2022 een dividenduitkering op de 226 stuks VWRL die ik in portefeuille heb. Het dividendbedrag is netto € 0,3785 per aandeel. Daarvoor betaal ik bij mijn broker geen transactiekosten. Op het werkblad Transactions ziet dat er als volgt uit:
Date | Action | Position | Number | Price | Fee | Total | Exchange Rate | Remarks |
25-01-2023 | DIVCA | VWRL | 226,00 | 0,3785 | 0,00 | 80,34 | 1,0000 | Dividend VWRL |
En de transactie op het werkblad Cash ziet er als volgt uit.
Date | Portfolio | EUR | USD | Other | Exchange Rate | Remarks |
25-01-2023 | 0,00 | 80,34 | 0,00 | 0,00 | 1,0000 | Dividend VWRL |
Het geld wordt bijgeboekt op mijn Euro-beleggingsrekening.
Voorbeeld storting vanaf mijn tegenrekening
Een storting van mijn tegenrekening naar de beleggingsrekening veroorzaakt alleen een regel op het werkblad Cash. Neem als voorbeeld een maandelijkse overboeking van € 1.000,00 van mijn tegenrekening naar mijn beleggingsrekening. Dat ziet er op het werkblad Cash als volgt uit:
Date | Portfolio | EUR | USD | Other | Exchange Rate | Remarks |
25-01-2023 | 0,00 | 1.000,00 | 0,00 | -1.000,00 | 1,0000 | Maandelijkse overboeking |
Het geld wordt hier afgeboekt van mijn tegenrekening ‘Other’ en bijgeboekt op mijn Euro-beleggingsrekening.
Voorbeeld servicefee van broker
Ook de maandelijkse afboeking van de servicefee van mijn broker veroorzaakt alleen een regel op het werkblad Cash. Dat ziet er als volgt uit:
Date | Portfolio | EUR | USD | Other | Exchange Rate | Remarks |
25-01-2023 | 0,00 | -15,00 | 0,00 | 0,00 | 1,0000 | Maandelijkse Servicefee |
Het geld wordt hier afgeboekt van mijn Euro-beleggingsrekening.
Tussenstand bijwerken
Zelf kies ik ervoor om wekelijks de actuele stand van mijn beleggingen bij te werken, elk weekend. Dit bestaat uit twee stappen.
Allereerst druk ik op de knop Snapshot op het werkblad Dashboard. Er draait dan een macro die een tijdelijk werkblad Data aanmaakt, en daarop een standaardrapportage opbouwt met alle fondsen die op dat moment in portefeuille zijn. Voor die fondsen worden automatisch de actuele koersen opgehaald, en op basis daarvan wordt ook de actuele waarde berekend. Daarna is dit macro klaar.
De tweede stap begint zodra je drukt op de knop Process Quotes op het werkblad Dashboard. Die kopieert de koersen van het werkblad Data naar de juiste rij en kolom op het werkblad FundHistory, de actuele waarde naar de juiste rij en kolom op het werkblad FundValue, en maakt voor deze datum een nieuwe kolom aan op het werkblad TotalValue. Daarna wordt het tijdelijke werkblad Data weer verwijderd.
Met de knop Historic Snapshot kun je een Snapshot maken van een willekeurige datum in het verleden. Ik gebruik het soms na vakanties om de tussenliggende weekenden bij te werken. Deze werkt in twee stappen. Je drukt eerst op de knop Historic Snapshot, voert een datum in, en dan gaat Excel op zoek naar de koersen. Om één of andere vreemde reden werken de Aandelenfuncties alleen als er geen Visual Basic macro’s draaien. Daarom stopt de macro na een tijdje. Je krijgt de melding dat je nog een keer op de knop Historic Snapshot moet drukken. Als je dat doet, worden de inmiddels opgehaalde koersen uit het verleden op een tijdelijk werkblad Data geplaatst. Die kun je vervolgens ook verwerken door op de knop Process Quotes te drukken.
De overige knoppen op het Dashboard
De knop Copy Values zorgt dat de laatste kolom met gegevens op FundValue en FundHistory wordt gekopieerd naar een nieuwe kolom, waarbij ook een extra kolom op het werkblad TotalValue wordt aangemaakt. Ik gebruik die op 1 januari als ik de waarden van de laatste dag van het voorgaande jaar heb ingevoerd, om een startkolom op 1 januari van het nieuwe jaar te maken.
Let op: er moet op FundHistory, FundValue en TotalValue een kolom komen voor zowel 31 december van het voorgaande jaar als 1 januari van het nieuwe jaar, anders werken sommige functies niet goed. En de ROI voor het eerste jaar waarin je begint kan natuurlijk ook 0 zijn als je op 1 januari van je startjaar een Total Portfolio Value van 0 hebt.
De knop Remove Values verwijdert de laatst ingevoerde kolom met gegevens op FundValue en FundHistory en ook op het werkblad TotalValue.
Na het indrukken van de knop Refresh TotalValue kun je een specifieke datum invoeren. De kolom die correspondeert met die datum wordt dan opnieuw opgebouwd.
De knop Save / No Calculate slaat de spreadsheet op zonder het uitvoeren van herberekeningen. Die kunnen namelijk wel even duren als de spreadsheet veel data bevat.
Als je wilt migreren
Ben je al een gebruiker van mijn oude beleggingsspreadsheet? En wil je migreren naar de nieuwe? Dat kan, maar dan heb je wat te doen… De stappen uit mijn eerdere blogpost onder het kopje Migratie zijn nog steeds van toepassing.
Tenslotte
Ik kan helaas geen verdere ondersteuning bieden bij het gebruik van deze spreadsheet. Daarvoor heb ik eenvoudigweg te weinig tijd. Of liever: daar wil ik mijn tijd niet aan besteden, ik heb andere prioriteiten. Dit is met afstand de meest complexe spreadsheet die ik heb. Heb je weinig of geen Excel-kennis? Gebruik deze spreadsheet dan niet!
Je kunt versie 2302 van mijn beleggingsspreadsheet rechtstreeks downloaden of vinden op mijn Downloads-pagina. Deze versie werkt alleen met Microsoft 365. Je hebt namelijk toegang nodig tot de Aandelen-functies van Excel om koersen binnen te kunnen halen.
Hoe beheer jij jouw beleggingen?
Dank je. Ik ga er eens naar kijken. Altijd leuk om weer wat nieuwe Excel dingen te leren. Gebruiken ga ik ‘m waarschijnlijk niet, want ik maak al een paar jaar graag gebruik van het open source programma portfolio performance.
Ha, die heb ik een aantal jaren geleden eens bekeken. Ga ik toch ook nog een keertje doen, het ziet eruit alsof het aardig doorgegroeid is.
Ik beheer mijn beleggingen, net als de rest van mijn financiën, in GnuCash. Voornamelijk bij het inboeken van de aankopen/dividend/fees moet je ff opletten dat je ze juist koppelt aan de beleggingen, daarna kun je mooi het Portfolio overzicht gebruiken in GnuCash.
Ik heb mijn beleggingen ook in GnuCash zitten. Het Advanced portfolio Report is nuttig, maar ik houd ook van mooie grafiekjes door de tijd heen. En daar is GnuCash nog niet zo goed in. Maar goed, zodra mijn spreadsheets omgebouwd zijn naar LibreOffice mag ik verder gaan klooien met Scheme…
Interessant zie niet waarom ik na inzet van bedrag zoveel verlies. Daarvoor wil ik de belegging zichtbaar maken en als mogelijk is in GnuCash verwerken. Bij ING zie ik de de beleggingen in % die opgeteld wordt tot totaal belegging van 100% Daar zie ik geen bedragen en ben nu benieuwd waarom ik geld heb verloren en wat de oorzaak daarvan is.
Helaas (gelukkig) ben ik geen gebruiker van ING, dus ik kan je hier niet bij helpen. Maar Nederlandse banken en brokers zijn verplicht om transparant te zijn. Waardeverlies bij beleggingen komt eigenlijk altijd door dalende koersen en/of hoge kosten.
Ik ben zelf erg fan van https://portfoliodividendtracker.com/nl. Zeker als je via DEGIRO belegt is het supergemakkelijk, dan kun je zo je transactieoverzicht in .csv formaat importeren. Wel betaald (en niet open source denk ik), maar het biedt je naast je resultaten ook inzicht o.a. in de spreiding van je portfolio.
Betalen en niet open-source zijn voor mij persoonlijk twee no-go’s. Al heb ik zelf mijn portefeuille ook nog steeds in Morningstar staan, dat geeft inzicht in onder andere spreiding en kosten.