U kunt de autofill functie volledig vermijden met array formules. Voer gewoon de formule in zoals normaal, maar voeg :column
toe aan het eind van elke celverwijzing en druk dan op Ctrl+Shift+Enter. De formule wordt dan onmiddellijk toegepast op alle cellen in de kolom zonder iets te slepen
Bewerken:
Nieuwere Excel-versies zullen automatisch arrayformules gebruiken om naar beneden te vullen wanneer er een nieuwe gegevensrij is
Vanaf de update van september 2018 voor Office 365 zal elke formule die meerdere resultaten kan retourneren, deze automatisch naar beneden morsen, of naar de overkant in naburige cellen. Deze gedragsverandering gaat ook gepaard met verschillende nieuwe dynamische matrixfuncties. Dynamische matrixformules, of ze nu bestaande functies of de dynamische matrixfuncties gebruiken, hoeven slechts in één cel te worden ingevoerd en vervolgens te worden bevestigd door op Enter te drukken. Voor oudere matrixformules moet eerst het hele uitvoerbereik worden geselecteerd en vervolgens moet de formule worden bevestigd met Ctrl+Shift+Enter. Ze worden meestal CSE-formules genoemd.
Richtlijnen en voorbeelden van matrix formules
Als je op een oudere versie van Excel zit of meer wilt weten over matrix formules lees dan verder
Bijvoorbeeld =B3:B + 2*C3:C
in D3 zetten en Ctrl+Shift+Enter is gelijk aan =B3 + 2*C3
typen en helemaal naar beneden slepen in een tabel beginnend bij rij 3
Dat is snel om te typen, maar heeft als nadeel dat ongebruikte cellen aan het eind (buiten de huidige tabel) nog steeds berekend worden en 0 tonen. Er is een gemakkelijke manier om de 0’s te verbergen . De nog betere manier is echter om de berekening te beperken tot de laatste kolom van de tabel. Wetende dat je in een matrixformule X3:X101
kunt gebruiken om alleen toe te passen op cellen van X3 tot X101 kunnen we INDIRECT
functie gebruiken om hetzelfde effect te bereiken
- Voer
=LOOKUP(2, 1/(A:A <> ""), A:A)
in een cel buiten de tabel in om de laatste niet-blanco cel in de tabel te vinden en noem het LastRow
. Of gebruik =COUNTA(A3:A) + 2
als de eerste rij van de tabel 3 is
- Gebruik dan in plaats van
B3:B
=INDIRECT("B3:B" & LastRow)
Bijvoorbeeld als u wilt dat cellen in kolom D de producten van cellen in B en C bevatten, en kolom E de sommen van B en C bevat, in plaats van D3 = B3*C3
en E3 = B3 + C3
te gebruiken en naar beneden te slepen, zet je gewoon de onderstaande formules in respectievelijk D3 en E3 en druk je op Ctrl+Shift+Enter
=INDIRECT("B3:B" & LastRow) * INDIRECT("C3:C" & LastRow)
=INDIRECT("B3:B" & LastRow) + INDIRECT("C3:C" & LastRow)
Van nu af aan elke keer dat je gegevens toevoegt aan een nieuwe rij, wordt de tabel automatisch bijgewerkt
Array formule is erg snel omdat het toegangspatroon van de gegevens al bekend is. In plaats van 100001 verschillende berekeningen apart te doen, kunnen ze nu gevectoriseerd en parallel gedaan worden, gebruik makend van meerdere kernen en SIMD unit in de CPU. Het heeft ook de volgende voordelen:
- Consistentie: Als u op een van de cellen vanaf E2 naar beneden klikt, ziet u dezelfde formule. Die consistentie kan bijdragen aan een grotere nauwkeurigheid.
- Veiligheid: U kunt een component van een matrixformule met meerdere cellen niet overschrijven. Klik bijvoorbeeld op cel E3 en druk op Delete. U moet ofwel het gehele cellenbereik (E2 tot E11) selecteren en de formule voor de gehele matrix wijzigen, of de matrix laten zoals deze is. Als extra veiligheidsmaatregel moet u op Ctrl+Shift+Enter drukken om de wijziging in de formule te bevestigen.
- Kleinere bestandsgrootte: U kunt vaak een enkele matrixformule gebruiken in plaats van meerdere tussenliggende formules. Het werkboek gebruikt bijvoorbeeld één matrixformule om de resultaten in kolom E te berekenen. Als u standaardformules had gebruikt (zoals
=C2*D2
, C3*D3
, C4*D4
…), zou u 11 verschillende formules hebben gebruikt om dezelfde resultaten te berekenen.
Richtlijnen en voorbeelden van matrixformules
Voor meer informatie lees