VERSCHUIVING
OFFSET in Engelstalige Excel
Levert een verwijzing op naar de cel of het blok dat een aantal rijen en kolommen van een startcel af ligt, eventueel met een andere grootte.
Laatst bijgewerkt: 13 oktober 2026
| Rij | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Rekening | Omschrijving | Saldo | Regelnr. | Saldo | |
| 2 | 11001100 | Bank | €84,350.00€ 84.350,00 | 44 | €645,200.00€ 645.200,00=VERSCHUIVING(C1, E2, 0)=VERSCHUIVING(C1; E2; 0) | |
| 3 | 13001300 | Debiteuren | €212,480.00€ 212.480,00 | |||
| 4 | 16001600 | Crediteuren | -€156,920.00€ -156.920,00 | |||
| 5 | 40004000 | Personeelskosten | €645,200.00€ 645.200,00 | |||
| 6 | 45004500 | Huisvestingskosten | €230,400.00€ 230.400,00 | |||
| 7 | 80008000 | Omzet | -€1,482,600.00€ -1.482.600,00 |
Veeg opzij om alle kolommen te zien
Resultaat: €645,200.00€ 645.200,00
=VERSCHUIVING(C1,E2, 0)
=VERSCHUIVING(C1;E2; 0)
Wat VERSCHUIVING doet en wanneer je het gebruikt
Wat het doet: het begint bij een cel, verschuift een aantal rijen en kolommen en geeft een verwijzing terug naar wat daar staat, bijvoorbeeld het saldo van de saldibalansregel die je op nummer kiest.
Wanneer je het gebruikt: voor bereiken die verschuiven of groeien, zoals de laatste drie maanden of een voortschrijdend totaal over vier weken. Binnen SOM of GEMIDDELDE levert het een bereik waarvan de positie en grootte berekend zijn. Het is vluchtig, dus in grote werkmappen is INDEX vaak de lichtere keuze.
Hoe Excel de functie berekent
Excel gaat uit van de linkerbovencel van verw:
- het verschuift rijen omlaag (of omhoog bij een negatief getal) en kolommen naar rechts (of naar links bij een negatief getal)
- het bakent vanaf de cel waar het uitkomt een blok af dat hoogte rijen hoog en breedte kolommen breed is, standaard even groot als verw
- het resultaat is een verwijzing naar dat blok, geen kopie van de waarden, dus de functie eromheen werkt met de cellen zelf
Valt een deel van het blok buiten het werkblad, dan is het resultaat #VERW!.
Let op: VERSCHUIVING is vluchtig, dus Excel herberekent het na elke wijziging waar dan ook in de werkmap. In grote modellen is INDEX meestal de betere keuze: INDEX(bereik; n):INDEX(bereik; m) bouwt hetzelfde verschuivende bereik zonder vluchtig te zijn.
Denkmodel
Een fotolijstje dat je op het raster legt: rijen en kolommen zeggen waar de linkerbovenhoek komt ten opzichte van het ankerpunt, hoogte en breedte zeggen hoe groot het lijstje is, en de functie eromheen leest wat erdoorheen zichtbaar is.
Begrippen op deze pagina: werkblad, celverwijzing, werkmap, bereik, cel
VERSCHUIVING(verw,rijen, kolommen, [hoogte], [breedte])
VERSCHUIVING(verw;rijen; kolommen; [hoogte]; [breedte])
| Argument | Soort | Betekenis | Standaard |
|---|---|---|---|
verw | Verplicht | De startcel of het startbereik. | |
rijen | Verplicht | Hoeveel rijen omlaag; negatief gaat omhoog. | |
kolommen | Verplicht | Hoeveel kolommen naar rechts; negatief gaat naar links. | |
hoogte | Optioneel | Het aantal rijen van het resultaat. | hoogte van verw |
breedte | Optioneel | Het aantal kolommen van het resultaat. | breedte van verw |
Geeft terug:Een verwijzing naar een cel of bereik, die in de cel de waarde toont of als invoer dient voor een andere functie
Formules gebruiken komma's (,) tussen de argumenten, zoals in de Engelse Excel. Formules gebruiken puntkomma's (;) tussen de argumenten, zoals in de Nederlandse Excel. Formules gebruiken puntkomma's (;) tussen de argumenten, zoals in de Nederlandse Excel; de Engelse Excel gebruikt komma's (,).
Uitgewerkte voorbeelden
Beginner
Saldibalansregel die je op nummer kiest
Je legt de saldibalans van een cliënt naast het grootboek. De lijst heeft één regel per grootboekrekening, en Sanne de Vries, je senior, geeft je de regelnummers die je moet controleren.
Typ een regelnummer en zie het saldo van die regel. Regel 4 is rekening 4000, en die staat 4 rijen onder de kop.
| Rij | A | B | C | D | E | F | G |
|---|---|---|---|---|---|---|---|
| 1 | Rekening | Omschrijving | Saldo | Regelnr. | Saldo | ||
| 2 | 11001100 | Bank | €84,350.00€ 84.350,00 | 44 | €645,200.00€ 645.200,00=VERSCHUIVING(C1, E2, 0)=VERSCHUIVING(C1; E2; 0) | ||
| 3 | 13001300 | Debiteuren | €212,480.00€ 212.480,00 | ||||
| 4 | 16001600 | Crediteuren | -€156,920.00€ -156.920,00 | ||||
| 5 | 40004000 | Personeelskosten | €645,200.00€ 645.200,00 | ||||
| 6 | 45004500 | Huisvestingskosten | €230,400.00€ 230.400,00 | ||||
| 7 | 80008000 | Omzet | -€1,482,600.00€ -1.482.600,00 | ||||
| 8 |
Veeg opzij om alle kolommen te zien
Formule in F2
=VERSCHUIVING(C1,E2, 0)
=VERSCHUIVING(C1;E2; 0)
Resultaat: €645,200.00€ 645.200,00
Stap voor stap
- Excel neemt het ankerpunt,
C1, de kop Saldo. - In
E2staat 4, dus Excel gaat 4 rijen omlaag vanafC1:C2,C3,C4,C5. Het komt uit opC5, de regel van rekening 4000. - kolommen is 0, dus het blijft in kolom C. hoogte en breedte zijn weggelaten, dus het resultaat is één cel, even groot als
C1. - VERSCHUIVING geeft een verwijzing naar
C5terug, en de cel toont de waarde daarvan: 645200, het saldo van Personeelskosten. - Typ 6 in
E2en VERSCHUIVING gaat 6 rijen omlaag naarC7, de regel Omzet: -1482600.
Let op: Typ 0 in E2 en je krijgt de koptekst, Saldo. Typ 7 en VERSCHUIVING wijst naar de lege C8, die 0 toont: een geloofwaardig saldo voor een rekening die niet op de lijst staat.
Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil
Waarom het werkt
Door op de kop te ankeren zijn het regelnummer en het aantal rijen dat je verschuift hetzelfde: regel 1 staat één rij onder de kop. VERSCHUIVING telt alleen; het kijkt nooit welke rekening in de rij staat, dus de opbouw van de lijst maakt het antwoord juist.
Meer om op te letten
- De cliënt stuurt een nieuwe versie met een totaalregel tussen de kop en rekening 1100. De rekeningen schuiven omlaag terwijl het ankerpunt op
C1blijft, dus elk regelnummer geeft nu de rekening ervoor. INDEX(C2:C7; E2) schuift zijn bereik mee met de gegevens.
Halfgevorderd
Loonkosten over de laatste vier perioden
Je sluit rekening 4000 (Personeelskosten) uit de XAF-auditfile per periode af op het loonjournaal van de cliënt. Veldhuis Installatie BV heeft periode 5 nog niet geboekt, dus die cel is leeg. Typ de laatste periode en je krijgt het totaal van die periode en de drie perioden ervoor, om met de specificatie te vergelijken.
| Rij | A | B | C | D | E | F |
|---|---|---|---|---|---|---|
| 1 | Periode | Debet 4000 | Laatste periode | 77 | ||
| 2 | 11 | €118,400.00€ 118.400,00 | Totaal 4 perioden | €374,900.00€ 374.900,00=SOM(VERSCHUIVING(B1, E1 - 3, 0, 4, 1))=SOM(VERSCHUIVING(B1; E1 - 3; 0; 4; 1)) | ||
| 3 | 22 | €121,050.00€ 121.050,00 | ||||
| 4 | 33 | €119,800.00€ 119.800,00 | ||||
| 5 | 44 | €123,300.00€ 123.300,00 | ||||
| 6 | 55 | |||||
| 7 | 66 | €126,900.00€ 126.900,00 | ||||
| 8 | 77 | €124,700.00€ 124.700,00 | ||||
| 9 | 88 | €125,350.00€ 125.350,00 | ||||
| 10 |
Veeg opzij om alle kolommen te zien
Formule in E2
=SOM(VERSCHUIVING(B1,E1 - 3, 0, 4, 1))
=SOM(VERSCHUIVING(B1;E1 - 3; 0; 4; 1))
Resultaat: €374,900.00€ 374.900,00
Stap voor stap
- Excel berekent eerst rijen: E1 - 3 = 7 - 3 = 4. Het venster moet drie perioden vóór periode 7 beginnen, bij periode 4.
- VERSCHUIVING gaat 4 rijen omlaag vanaf
B1en komt uit opB5, de rij van periode 4. - hoogte is 4 en breedte is 1, dus VERSCHUIVING rekt het resultaat op tot
B5:B8: periode 4, 5, 6 en 7. - SOM telt het blok op.
B6(periode 5) is leeg en SOM slaat het over: 123300 + 126900 + 124700 = 374900. - Zonder hoogte en breedte zou VERSCHUIVING alleen
B5teruggeven, even groot als het ankerpunt, en zou het resultaat 123300 zijn. De twee optionele argumenten maken van één cel een venster. - Zet
E1op 8: rijen wordt 5, het venster isB6:B9, en het totaal is 0 + 126900 + 124700 + 125350 = 376950.
Let op: Vul periode 2 of lager in. rijen wordt -1 of minder, en dat wijst boven rij 1, dus het resultaat is #VERW!. Periode 3 geeft rijen 0: het venster is B1:B4, SOM negeert de kop, en je krijgt stilletjes periode 1 tot en met 3: 359250.
Meer over dit voorbeeld: waarom het werkt, nog 1 valkuil, 1 variant
Waarom het werkt
rijen bepaalt waar het venster begint en hoogte hoe lang het is, dus als je de laatste periode verschuift, schuift het hele venster mee zonder van grootte te veranderen. VERSCHUIVING geeft SOM een echt bereik, en daarom wordt de niet geboekte periode overgeslagen in plaats van dat het totaal breekt.
Meer om op te letten
- De niet geboekte periode telt mee als een van de vier, dus dit totaal beslaat drie perioden loon. Het verschil met het loonjournaal is dan een ontbrekende boeking en geen fout in de formule.
Varianten
=SOM(INDEX(B2:B9,E1 - 3):INDEX(B2:B9, E1))
=SOM(INDEX(B2:B9;E1 - 3):INDEX(B2:B9; E1))
De niet-vluchtige versie: twee INDEX-functies markeren de eerste en laatste cel van het venster.
Gevorderd
Gemiddelde van de laatste drie maandultimo's in een groeiende lijst
In je werkpapier over debiteuren (rekening 1300) neem je het maandultimo uit de ouderdomsanalyse debiteuren over zodra de cliënt een maand aanlevert. Het blad is ingericht voor het hele jaar, maar alleen de tot nu toe aangeleverde maanden zijn ingevuld. Een cel moet altijd het gemiddelde van de drie meest recente maandultimo's tonen, voor je cijferanalyse, zonder dat je de formule elke maand aanpast.
| Rij | A | B | C | D | E |
|---|---|---|---|---|---|
| 1 | Maand | Debiteuren 1300 | Gemiddelde laatste 3 | ||
| 2 | jan | €198,500.00€ 198.500,00 | €219,300.00€ 219.300,00=GEMIDDELDE(VERSCHUIVING(B1, AANTAL(B2:B9) - 2, 0, 3, 1))=GEMIDDELDE(VERSCHUIVING(B1; AANTAL(B2:B9) - 2; 0; 3; 1)) | ||
| 3 | feb | €205,300.00€ 205.300,00 | |||
| 4 | mrt | €214,800.00€ 214.800,00 | |||
| 5 | apr | €209,600.00€ 209.600,00 | |||
| 6 | mei | €221,400.00€ 221.400,00 | |||
| 7 | jun | €226,900.00€ 226.900,00 | |||
| 8 | jul | ||||
| 9 | aug | ||||
| 10 |
Veeg opzij om alle kolommen te zien
Formule in D2
=GEMIDDELDE(VERSCHUIVING(B1,AANTAL(B2:B9) - 2, 0, 3, 1))
=GEMIDDELDE(VERSCHUIVING(B1;AANTAL(B2:B9) - 2; 0; 3; 1))
Resultaat: €219,300.00€ 219.300,00
Stap voor stap
- Excel begint binnenin: AANTAL(B2:B9) telt de cellen met een getal. Januari tot en met juni zijn ingevuld, juli en augustus zijn leeg, dus AANTAL geeft 6.
- rijen wordt 6 - 2 = 4. De laatste ingevulde maand staat 6 rijen onder
B1, en een venster van drie maanden moet twee rijen eerder beginnen. - VERSCHUIVING gaat 4 rijen omlaag vanaf
B1naarB5(april) en geeft met hoogte 3 en breedte 1 het bereikB5:B7terug: april, mei en juni. - GEMIDDELDE werkt met dat bereik: (209600 + 221400 + 226900) / 3 = 657900 / 3 = 219300.
- Vul 231500 in voor juli in
B8. AANTAL wordt 7, rijen wordt 5, het venster schuift naarB6:B8, en het gemiddelde wordt (221400 + 226900 + 231500) / 3 = 679800 / 3 = 226600.
Let op: Wordt een maand overgeslagen, bijvoorbeeld maart blijft leeg terwijl juli is ingevuld, dan is AANTAL nog steeds 6, maar staat het laatste saldo in B8. Het venster blijft B5:B7 en laat juli stilletjes weg.
Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 2 varianten
Waarom het werkt
AANTAL maakt van 'hoe ver is de lijst gegroeid?' een getal, en VERSCHUIVING maakt van dat getal een positie. Omdat de saldi van boven naar beneden zonder gaten worden ingevuld, is het aantal getallen gelijk aan de rij van het laatste saldo, en op die aanname rust de hele formule.
Meer om op te letten
- Een saldo dat uit de export van de cliënt als tekst is geplakt, bijvoorbeeld 226900 met een spatie erachter, telt niet mee in AANTAL en niet in het gemiddelde. Het venster verschuift en het gemiddelde verandert zonder foutmelding.
- Met minder dan 3 saldi zakt rijen naar 0 of lager, en het venster bevat dan de kop of valt buiten het werkblad.
Varianten
=GEMIDDELDE(INDEX(B2:B9,AANTAL(B2:B9) - 2):INDEX(B2:B9, AANTAL(B2:B9)))
=GEMIDDELDE(INDEX(B2:B9;AANTAL(B2:B9) - 2):INDEX(B2:B9; AANTAL(B2:B9)))
Hetzelfde venster met INDEX gebouwd: niet vluchtig, dus het herberekent alleen als de saldi veranderen.
=GEMIDDELDE(NEMEN(FILTER(B2:B9,B2:B9 <> ""), -3))
=GEMIDDELDE(NEMEN(FILTER(B2:B9;B2:B9 <> ""); -3))
Excel 2024 of Microsoft 365: FILTER laat de lege cellen weg en NEMEN houdt de laatste drie over, dus een overgeslagen maand verschuift het venster niet meer.
ExpertExcel 2021 of nieuwer (Dit voorbeeld vereist Excel 2021 of nieuwer)
Kostenmutaties over een gekozen venster van perioden
Je toetst de mutaties van kostenrekeningen per periode uit de XAF-auditfile aan de specificatie van de cliënt. Kies een rekening, een eindperiode en een aantal perioden, en je krijgt het totaal over dat terugkijkende venster.
Vroeg in het jaar kan het venster langer zijn dan het aantal beschikbare perioden, en de formule moet dat opvangen in plaats van in de kolom met rekeningen te belanden.
| Rij | A | B | C | D | E | F | G | H | I | J |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Rekening | jan | feb | mrt | apr | mei | Rekening | 45004500 | ||
| 2 | 40004000 | €118,400.00€ 118.400,00 | €121,050.00€ 121.050,00 | €119,800.00€ 119.800,00 | €123,300.00€ 123.300,00 | €126,900.00€ 126.900,00 | Eindperiode | apr | ||
| 3 | 45004500 | €18,500.00€ 18.500,00 | €18,500.00€ 18.500,00 | €18,500.00€ 18.500,00 | €19,200.00€ 19.200,00 | €19,200.00€ 19.200,00 | Perioden | 33 | ||
| 4 | 46004600 | €6,240.00€ 6.240,00 | €5,890.00€ 5.890,00 | €7,120.00€ 7.120,00 | €6,480.00€ 6.480,00 | €6,955.00€ 6.955,00 | Totaal | €56,200.00€ 56.200,00=LET( rekeningRij, VERGELIJKEN(I1, A2:A5, 0), perKolom, VERGELIJKEN(I2, B1:F1, 0), spanwijdte, MIN(I3, perKolom), SOM(VERSCHUIVING(A1, rekeningRij, perKolom - spanwijdte + 1, 1, spanwijdte)) )=LET( rekeningRij; VERGELIJKEN(I1; A2:A5; 0); perKolom; VERGELIJKEN(I2; B1:F1; 0); spanwijdte; MIN(I3; perKolom); SOM(VERSCHUIVING(A1; rekeningRij; perKolom - spanwijdte + 1; 1; spanwijdte)) ) | ||
| 5 | 47004700 | €3,120.00€ 3.120,00 | €2,870.00€ 2.870,00 | €3,410.00€ 3.410,00 | €2,950.00€ 2.950,00 | €3,680.00€ 3.680,00 | ||||
| 6 |
Veeg opzij om alle kolommen te zien
Formule in I4
=LET( rekeningRij,VERGELIJKEN(I1, A2:A5, 0), perKolom, VERGELIJKEN(I2, B1:F1, 0), spanwijdte, MIN(I3, perKolom), SOM(VERSCHUIVING(A1, rekeningRij, perKolom - spanwijdte + 1, 1, spanwijdte)) )
=LET( rekeningRij;VERGELIJKEN(I1; A2:A5; 0); perKolom; VERGELIJKEN(I2; B1:F1; 0); spanwijdte; MIN(I3; perKolom); SOM(VERSCHUIVING(A1; rekeningRij; perKolom - spanwijdte + 1; 1; spanwijdte)) )
Resultaat: €56,200.00€ 56.200,00
Stap voor stap
- rekeningRij: VERGELIJKEN vindt 4500 in de tweede cel van
A2:A5, dus rekeningRij is 2. VanafA1geteld is dat rij 3 van het werkblad. - perKolom: VERGELIJKEN vindt
aprin de vierde cel vanB1:F1, dus perKolom is 4. Vanaf kolom A geteld is dat kolom E. - spanwijdte: MIN(3; 4) = 3. Er passen drie perioden tot en met april, dus het gevraagde venster blijft staan.
- VERSCHUIVING begint bij
A1, gaat rekeningRij = 2 rijen omlaag en perKolom - spanwijdte + 1 = 4 - 3 + 1 = 2 kolommen naar rechts, en komt uit opC3(februari). Met hoogte 1 en breedte 3 geeft hetC3:E3terug: februari, maart en april. - SOM telt het venster op: 18500 + 18500 + 19200 = 56200.
- Zet
I3op 6. spanwijdte wordt MIN(6; 4) = 4, de kolomverschuiving wordt 4 - 4 + 1 = 1, het venster isB3:E3, en het totaal is 18500 + 18500 + 18500 + 19200 = 74700. Zonder MIN zou de verschuiving -1 zijn, links van kolom A, en het resultaat #VERW!.
Let op: De omgekeerde fout: je verwisselt hoogte en breedte, zoals in VERSCHUIVING(A1; rekeningRij; perKolom - spanwijdte + 1; spanwijdte; 1). Dat geeft C3:C5, februari voor drie verschillende rekeningen: 18500 + 5890 + 2870 = 27260. Een geloofwaardig getal met de verkeerde betekenis.
Meer over dit voorbeeld: waarom het werkt, nog 2 valkuilen, 2 varianten
Waarom het werkt
Door op A1, de hoek van het raster, te ankeren, zijn beide VERGELIJKEN-posities zonder correcties van +1 of -1 bruikbaar als verschuiving; alleen het begin van het venster heeft de + 1 nodig. MIN begrenst het venster tot de perioden die bestaan, een randgeval dat VERSCHUIVING anders omzet in #VERW! of, bij een venster dat één periode te lang is, in een stille som die de kolom met rekeningen meeneemt.
Gebruik deze opbouw niet in een groot model met veel van zulke cellen: VERSCHUIVING is vluchtig en herberekent na elke wijziging in de werkmap.
Het alternatief is SOM(INDEX(B2:F5; rekeningRij; perKolom - spanwijdte + 1):INDEX(B2:F5; rekeningRij; perKolom)), dat dezelfde 56200 geeft en alleen herberekent als de invoer verandert, ten koste van een langere formule.
Meer om op te letten
- Laat je de + 1 weg, dan schuift het venster een periode terug, naar januari tot en met maart: 18500 + 18500 + 18500 = 55500. Test met een venster van 1 periode, dat alleen de eindperiode moet teruggeven.
- Een venster van 0 perioden maakt spanwijdte 0, en VERSCHUIVING met breedte 0 geeft #VERW!. Beperk
I3met gegevensvalidatie als mensen het met de hand invullen.
Varianten
=SOM(VERSCHUIVING(A1,VERGELIJKEN(I1, A2:A5, 0), VERGELIJKEN(I2, B1:F1, 0) - I3 + 1, 1, I3))
=SOM(VERSCHUIVING(A1;VERGELIJKEN(I1; A2:A5; 0); VERGELIJKEN(I2; B1:F1; 0) - I3 + 1; 1; I3))
Hetzelfde zonder LET en zonder begrenzing: korter, en prima als het venster nooit langer kan zijn dan het aantal beschikbare perioden.
=LET( rekeningRij,VERGELIJKEN(I1, A2:A5, 0), perKolom, VERGELIJKEN(I2, B1:F1, 0), spanwijdte, MIN(I3, perKolom), SOM(INDEX(B2:F5, rekeningRij, perKolom - spanwijdte + 1):INDEX(B2:F5, rekeningRij, perKolom)) )
=LET( rekeningRij;VERGELIJKEN(I1; A2:A5; 0); perKolom; VERGELIJKEN(I2; B1:F1; 0); spanwijdte; MIN(I3; perKolom); SOM(INDEX(B2:F5; rekeningRij; perKolom - spanwijdte + 1):INDEX(B2:F5; rekeningRij; perKolom)) )
De niet-vluchtige INDEX-versie van dezelfde logica, voor grote werkmappen.
Veelgemaakte fouten
| Symptoom | Oorzaak | Oplossing |
|---|---|---|
| Elk resultaat zit één rij ernaast | Je telt vanaf de eerste gegevensrij in plaats van vanaf het ankerpunt, zodat elk resultaat één rij verschoven is. | rijen = 0 is het ankerpunt zelf. Anker op de kopcel als je wilt dat rijen = 1 de eerste gegevensrij is. |
| De werkmap pauzeert na elke wijziging | De werkmap wordt traag: elke wijziging veroorzaakt een pauze terwijl Excel herberekent. | Vervang VERSCHUIVING door INDEX:INDEX-bereiken, die alleen herberekenen als hun invoer verandert. |
| Een geloofwaardig getal van de verkeerde plek | hoogte en breedte worden verwisseld met rijen en kolommen, en de formule geeft een getal van de verkeerde plek dat er toch geloofwaardig uitziet. | Lees de argumenten als 'zoveel rijen omlaag, zoveel kolommen opzij, dan zoveel rijen hoog en zoveel kolommen breed', en test met een invoer waarvan je het antwoord kent. |
| Drie waarden lopen over, of maar één | Een cel met alleen =VERSCHUIVING(B1; 1; 0; 3; 1) toont drie waarden die overlopen. In versies van voor dynamische matrices zie je maar één waarde: die op de rij van de formule zelf, of #WAARDE! als er geen aansluit. | Een VERSCHUIVING van meerdere cellen heeft een functie eromheen nodig, zoals SOM of GEMIDDELDE, als je één getal wilt. |