Combinatie
Mini-saldibalans uit journaalregels met HOR.STAPELEN, UNIEK en SOMMEN.ALS
Maak uit ruwe journaalregels een lijst met rekeningen en hun saldo aan boekingen: UNIEK geeft de rekeningen, SOMMEN.ALS telt elke rekening op, HOR.STAPELEN zet beide naast elkaar en SORTEREN zet ze op volgorde.
Gebruikte functies:HOR.STAPELENUNIEKSOMMEN.ALSSORTERENExcel 2024 of nieuwer (Deze combinatie vereist Excel 2024 of nieuwer)
Uitgewerkt voorbeeld
Saldo aan boekingen per rekening uit de journaalregels
Situatie
Voor de controle van Veldhuis Installatie BV heb je vier boekstukken uit de XAF-auditfile geëxporteerd, één rij per regel, met debet als positief en credit als negatief bedrag. Je wilt per grootboekrekening een mini-saldibalans om te vergelijken met de saldibalans van de cliënt, zonder een draaitabel te bouwen.
De gegevens
| Rij | A | B | C | D | E | F | G | H |
|---|---|---|---|---|---|---|---|---|
| 1 | Boekstuk | Rekening | Omschrijving | Bedrag | ||||
| 2 | 25-0601 | 45004500 | Huur oktober | €3,200.00€ 3.200,00 | 11001100=SORTEREN(HOR.STAPELEN(UNIEK(B2:B9), SOMMEN.ALS(D2:D9, B2:B9, UNIEK(B2:B9))))=SORTEREN(HOR.STAPELEN(UNIEK(B2:B9); SOMMEN.ALS(D2:D9; B2:B9; UNIEK(B2:B9)))) | €1,850.00€ 1.850,00 | ||
| 3 | 25-0601 | 16001600 | Huur oktober | -€3,200.00€ -3.200,00 | 13001300 | -€8,400.00€ -8.400,00 | ||
| 4 | 25-0602 | 11001100 | Ontvangst klant | €8,400.00€ 8.400,00 | 16001600 | -€3,200.00€ -3.200,00 | ||
| 5 | 25-0602 | 13001300 | Ontvangst klant | -€8,400.00€ -8.400,00 | 40004000 | €5,100.00€ 5.100,00 | ||
| 6 | 25-0603 | 40004000 | Salarisrun | €5,100.00€ 5.100,00 | 45004500 | €4,650.00€ 4.650,00 | ||
| 7 | 25-0603 | 11001100 | Salarisrun | -€5,100.00€ -5.100,00 | ||||
| 8 | 25-0604 | 45004500 | Nutsvoorzieningen | €1,450.00€ 1.450,00 | ||||
| 9 | 25-0604 | 11001100 | Nutsvoorzieningen | -€1,450.00€ -1.450,00 | ||||
| 10 |
Veeg opzij om alle kolommen te zien
Formule in F2
=SORTEREN(HOR.STAPELEN(UNIEK(B2:B9),SOMMEN.ALS(D2:D9, B2:B9, UNIEK(B2:B9))))
=SORTEREN(HOR.STAPELEN(UNIEK(B2:B9);SOMMEN.ALS(D2:D9; B2:B9; UNIEK(B2:B9))))
Resultaat: 1100 | €1,850.00 / 1300 | -€8,400.00 / 1600 | -€3,200.00 / 4000 | €5,100.00 / 4500 | €4,650.001100 | € 1.850,00 / 1300 | € -8.400,00 / 1600 | € -3.200,00 / 4000 | € 5.100,00 / 4500 | € 4.650,00
Hoe de onderdelen samenwerken
Let op: Staan sommige rekeningen als tekst ("1100") en andere als getal, dan toont UNIEK dezelfde rekening twee keer en telt SOMMEN.ALS beide schrijfwijzen bij allebei mee. Zet de kolom met rekeningen eerst om naar één type.
De formule uit elkaar gehaald, van binnen naar buiten. Je kunt elk onderdeel in een eigen cel typen om te zien wat het teruggeeft.
=UNIEK(B2:B9)
=UNIEK(B2:B9)
matrixDe waarden waaruit dubbele weg moeten; bij meerdere kolommen telt de hele rij.Kolom Rekening, 8 cellenDruk op Escape om te sluitenZet elke rekening één keer onder elkaar, in volgorde van eerste voorkomen: 4500, 1600, 1100, 1300, 4000. De acht journaalregels bevatten vijf verschillende rekeningen.
=SOMMEN.ALS(D2:D9,
B2:B9, UNIEK(B2:B9)) =SOMMEN.ALS(D2:D9;
B2:B9; UNIEK(B2:B9)) SOMMEN.ALS SUMIFSTelt de getallen op die aan alle opgegeven voorwaarden voldoen.Lees meer over SOMMEN.ALSDruk op Escape om te sluitenoptelbereikDe cellen met de getallen die worden opgeteld als een rij door alle tests komt.Kolom Bedrag, 8 cellenDruk op Escape om te sluitencriteriumbereik1Het bereik waarop je de eerste voorwaarde toetst; even groot als optelbereik.Kolom Rekening, 8 cellenDruk op Escape om te sluitenUNIEK UNIQUEGeeft de unieke waarden van een bereik.Hier gebruikt als: criterium1De test: een waarde, een cel, of tekst zoals ">=100" of "MEM-*".Lees meer over UNIEKDruk op Escape om te sluitenmatrixDe waarden waaruit dubbele weg moeten; bij meerdere kolommen telt de hele rij.Kolom Rekening, 8 cellenDruk op Escape om te sluitenOmdat het criterium een lijst van vijf rekeningen is, geeft SOMMEN.ALS vijf totalen terug, één per rekening:
- 4500 geeft 3.200 + 1.450 = 4.650
- 1600 geeft -3.200
- 1100 geeft 8.400 - 5.100 - 1.450 = 1.850
- 1300 geeft -8.400
- 4000 geeft 5.100
=HOR.STAPELEN(UNIEK(B2:B9),
SOMMEN.ALS(D2:D9, B2:B9, UNIEK(B2:B9))) =HOR.STAPELEN(UNIEK(B2:B9);
SOMMEN.ALS(D2:D9; B2:B9; UNIEK(B2:B9))) HOR.STAPELEN HSTACKZet bereiken naast elkaar.Lees meer over HOR.STAPELENDruk op Escape om te sluitenUNIEK UNIQUEGeeft de unieke waarden van een bereik.Hier gebruikt als: matrix1Het eerste bereik of de eerste matrix; die komt in de meest linkse kolommen.Lees meer over UNIEKDruk op Escape om te sluitenmatrixDe waarden waaruit dubbele weg moeten; bij meerdere kolommen telt de hele rij.Kolom Rekening, 8 cellenDruk op Escape om te sluitenSOMMEN.ALS SUMIFSTelt de getallen op die aan alle opgegeven voorwaarden voldoen.Hier gebruikt als: matrix2Nog een bereik of matrix dat rechts komt; voeg er zoveel toe als je nodig hebt.Lees meer over SOMMEN.ALSDruk op Escape om te sluitenoptelbereikDe cellen met de getallen die worden opgeteld als een rij door alle tests komt.Kolom Bedrag, 8 cellenDruk op Escape om te sluitencriteriumbereik1Het bereik waarop je de eerste voorwaarde toetst; even groot als optelbereik.Kolom Rekening, 8 cellenDruk op Escape om te sluitenUNIEK UNIQUEGeeft de unieke waarden van een bereik.Hier gebruikt als: criterium1De test: een waarde, een cel, of tekst zoals ">=100" of "MEM-*".Lees meer over UNIEKDruk op Escape om te sluitenmatrixDe waarden waaruit dubbele weg moeten; bij meerdere kolommen telt de hele rij.Kolom Rekening, 8 cellenDruk op Escape om te sluitenZet de kolom met rekeningen en de kolom met totalen naast elkaar: een tabel van 5 rijen en 2 kolommen, nog in volgorde van eerste voorkomen (4500 eerst, 4000 laatst).
=SORTEREN(HOR.STAPELEN(UNIEK(B2:B9),
SOMMEN.ALS(D2:D9, B2:B9, UNIEK(B2:B9)))) =SORTEREN(HOR.STAPELEN(UNIEK(B2:B9);
SOMMEN.ALS(D2:D9; B2:B9; UNIEK(B2:B9)))) SORTEREN SORTGeeft een bereik gesorteerd op een van zijn kolommen.Lees meer over SORTERENDruk op Escape om te sluitenHOR.STAPELEN HSTACKZet bereiken naast elkaar.Hier gebruikt als: arrayHet bereik of de matrix die je sorteert; de bron zelf blijft zoals hij is.Lees meer over HOR.STAPELENDruk op Escape om te sluitenUNIEK UNIQUEGeeft de unieke waarden van een bereik.Hier gebruikt als: matrix1Het eerste bereik of de eerste matrix; die komt in de meest linkse kolommen.Lees meer over UNIEKDruk op Escape om te sluitenmatrixDe waarden waaruit dubbele weg moeten; bij meerdere kolommen telt de hele rij.Kolom Rekening, 8 cellenDruk op Escape om te sluitenSOMMEN.ALS SUMIFSTelt de getallen op die aan alle opgegeven voorwaarden voldoen.Hier gebruikt als: matrix2Nog een bereik of matrix dat rechts komt; voeg er zoveel toe als je nodig hebt.Lees meer over SOMMEN.ALSDruk op Escape om te sluitenoptelbereikDe cellen met de getallen die worden opgeteld als een rij door alle tests komt.Kolom Bedrag, 8 cellenDruk op Escape om te sluitencriteriumbereik1Het bereik waarop je de eerste voorwaarde toetst; even groot als optelbereik.Kolom Rekening, 8 cellenDruk op Escape om te sluitenUNIEK UNIQUEGeeft de unieke waarden van een bereik.Hier gebruikt als: criterium1De test: een waarde, een cel, of tekst zoals ">=100" of "MEM-*".Lees meer over UNIEKDruk op Escape om te sluitenmatrixDe waarden waaruit dubbele weg moeten; bij meerdere kolommen telt de hele rij.Kolom Rekening, 8 cellenDruk op Escape om te sluitenSORTEREN zet de tabel op volgorde van de eerste kolom, dus de rekeningen lopen van 1100 tot 4500 zoals in een saldibalans:
- 1100 = 1.850
- 1300 = -8.400
- 1600 = -3.200
- 4000 = 5.100
- 4500 = 4.650
De vijf totalen tellen op tot 0, zoals het hoort als elk boekstuk sluit.
Stap voor stap
- UNIEK(B2:B9) leest de rekeningen 4500, 1600, 1100, 1300, 4000, 1100, 4500, 1100 en houdt elke rekening één keer: 4500, 1600, 1100, 1300, 4000.
SOMMEN.ALS draait één keer per rekening in die lijst:
- 4500: 3,2003.200 + 1,4501.450 = 4,6504.650
- 1600: -3,2003.200
- 1100: 8,4008.400 - 5,1005.100 - 1,4501.450 = 1,8501.850
- 1300: -8,4008.400
- 4000: 5,1005.100
- HOR.STAPELEN zet de rekeningen naast de totalen: 4500 | 4,6504.650, 1600 | -3,2003.200, 1100 | 1,8501.850, 1300 | -8,4008.400, 4000 | 5,1005.100.
- SORTEREN zet de rijen oplopend op rekeningnummer: 1100, 1300, 1600, 4000, 4500, elk met zijn totaal.
- Het resultaat loopt vanaf
F2door overF2:G6. Controle: 1,8501.850 - 8,4008.400 - 3,2003.200 + 5,1005.100 + 4,6504.650 = 0, dus de journaalregels sluiten.
Waarom het werkt
UNIEK geeft de lijst met rekeningen één keer, en dezelfde lijst dient als criterium van SOMMEN.ALS. Een criterium dat een lijst is, laat SOMMEN.ALS per item één totaal teruggeven, in dezelfde volgorde, zodat rekeningen en totalen rij voor rij aansluiten.
HOR.STAPELEN voegt ze samen tot een tabel en SORTEREN zet die in de volgorde van een saldibalans. Verandert het journaal, dan wordt de tabel vanzelf groter of kleiner.
Let op
- Het overloopbereik
F2:G6moet leeg zijn. Staat er iets in die cellen, dan krijg je de fout #OVERLOPEN!. - De formule dekt alleen de regels in
B2:D9. Wordt de export langer, breid de bereiken dan uit of gebruik een tabel, anders ontbreken regels in je totalen.
Varianten
=SOMMEN.ALS(D2:D9,B2:B9, 1100)
=SOMMEN.ALS(D2:D9;B2:B9; 1100)
Eén rekening tegelijk: 8,4008.400 - 5,1005.100 - 1,4501.450 = 1,8501.850. Prima voor één rekening, maar je typt elke rekening zelf en kunt er dus een missen.
=HOR.STAPELEN(SORTEREN(UNIEK(B2:B9)),SOMMEN.ALS(D2:D9, B2:B9, SORTEREN(UNIEK(B2:B9))))
=HOR.STAPELEN(SORTEREN(UNIEK(B2:B9));SOMMEN.ALS(D2:D9; B2:B9; SORTEREN(UNIEK(B2:B9))))
Sorteert eerst de rekeningen en telt ze daarna in die volgorde op. Dezelfde tabel, maar de lijst met rekeningen staat er twee keer in en je kunt alleen op rekening sorteren.
=SOM.ALS(B2:B9,4500, D2:D9)
=SOM.ALS(B2:B9;4500; D2:D9)
De oudere SOM.ALS voor één rekening: 3,2003.200 + 1,4501.450 = 4,6504.650. Werkt in elke Excel-versie, maar geeft één getal per formule en geen lijst met rekeningen.
Verwante combinaties
Gebruikte functies
- HOR.STAPELENZet bereiken of matrices van links naar rechts naast elkaar tot één overlopend blok dat meebeweegt met de bronnen.
- UNIEKZet elke waarde uit een bereik één keer onder elkaar, in de volgorde waarin ze voor het eerst voorkomt, als overlopende lijst die de bron volgt.
- SOMMEN.ALSTelt de getallen in één bereik op, maar alleen in de rijen die voldoen aan alle voorwaarden die je op andere bereiken stelt.
- SORTERENMaakt een gesorteerde kopie van een bereik, op een van de kolommen, oplopend of aflopend, als overlopend blok dat opnieuw sorteert zodra de gegevens veranderen.
Gebruikte functies
- HOR.STAPELENZet bereiken of matrices van links naar rechts naast elkaar tot één overlopend blok dat meebeweegt met de bronnen.
- UNIEKZet elke waarde uit een bereik één keer onder elkaar, in de volgorde waarin ze voor het eerst voorkomt, als overlopende lijst die de bron volgt.
- SOMMEN.ALSTelt de getallen in één bereik op, maar alleen in de rijen die voldoen aan alle voorwaarden die je op andere bereiken stelt.
- SORTERENMaakt een gesorteerde kopie van een bereik, op een van de kolommen, oplopend of aflopend, als overlopend blok dat opnieuw sorteert zodra de gegevens veranderen.