Excel dynamische matrices, functies en formules

  • Deel Dit
Michael Brown

Dankzij de revolutionaire update in de rekenmotor van Excel 365 worden matrixformules heel eenvoudig en begrijpelijk voor iedereen, niet alleen voor supergebruikers. De tutorial legt het concept van de nieuwe dynamische matrices van Excel uit en laat zien hoe ze uw werkbladen efficiënter en een stuk eenvoudiger kunnen maken.

Excel matrixformules zijn altijd beschouwd als een voorrecht van goeroes en formule-experts. Als iemand zegt "Dit kan worden gedaan met een matrixformule", is de onmiddellijke reactie van veel gebruikers "Oh, is er geen andere manier?".

De introductie van dynamische matrices is een langverwachte en zeer welkome verandering. Omdat ze op een eenvoudige manier met meerdere waarden kunnen werken, zonder trucjes en nukken, zijn dynamische matrixformules iets dat elke Excel-gebruiker kan begrijpen en graag maakt.

    Excel dynamische matrices

    Dynamische reeksen zijn aanpasbare arrays die automatisch berekenen en waarden teruggeven in meerdere cellen op basis van een formule ingevoerd in een enkele cel.

    Gedurende meer dan 30 jaar geschiedenis heeft Microsoft Excel vele veranderingen ondergaan, maar één ding is constant gebleven - één formule, één cel. Zelfs met traditionele matrixformules was het noodzakelijk om een formule in te voeren in elke cel waar u een resultaat wilt zien verschijnen. Met dynamische matrices is deze regel niet langer van toepassing. Nu loopt elke formule die een matrix van waarden retourneert automatisch over in naburigecellen, zonder dat u op Ctrl + Shift + Enter hoeft te drukken of andere bewegingen hoeft te maken. Met andere woorden, het werken met dynamische matrices wordt net zo eenvoudig als het werken met een enkele cel.

    Laat me het concept illustreren met een heel eenvoudig voorbeeld. Stel dat je twee groepen getallen moet vermenigvuldigen, bijvoorbeeld om verschillende percentages te berekenen.

    In pre-dynamische versies van Excel zou de onderstaande formule alleen voor de eerste cel werken, tenzij u deze in meerdere cellen invoert en op Ctrl + Shift + Enter drukt om er expliciet een matrixformule van te maken:

    =A3:A5*B2:D2

    Kijk nu wat er gebeurt als dezelfde formule wordt gebruikt in Excel 365. Je typt hem in slechts één cel (B3 in ons geval), drukt op de Enter-toets... en de hele waaier wordt in één keer gevuld met de resultaten:

    Het vullen van meerdere cellen met een enkele formule heet het morsen van en het bevolkte cellenbereik wordt het overloopbereik genoemd.

    Een belangrijk punt om op te merken is dat de recente update niet alleen een nieuwe manier is om met arrays in Excel om te gaan. In feite is dit een baanbrekende wijziging van de hele berekeningsmotor. Met dynamische arrays zijn een hoop nieuwe functies toegevoegd aan de Excel-functiebibliotheek en de bestaande functies zijn sneller en effectiever gaan werken. Uiteindelijk is het de bedoeling dat de nieuwe dynamische arrays volledigvervangen de ouderwetse matrixformules die worden ingevoerd met de sneltoets Ctrl + Shift + Enter.

    Beschikbaarheid van dynamische arrays in Excel

    Dynamische arrays werden geïntroduceerd op de Microsoft Ignite Conference in 2018 en in januari 2020 vrijgegeven voor Office 365-abonnees. Momenteel zijn ze beschikbaar in Microsoft 365 abonnementen en Excel 2021.

    Dynamische arrays worden in deze versies ondersteund:

    • Excel 365 voor Windows
    • Excel 365 voor Mac
    • Excel 2021
    • Excel 2021 voor Mac
    • Excel voor iPad
    • Excel voor iPhone
    • Excel voor Android-tablets
    • Excel voor Android-telefoons
    • Excel voor het web

    Excel dynamische matrixfuncties

    Als onderdeel van de nieuwe functionaliteit zijn in Excel 365 6 nieuwe functies geïntroduceerd die van nature arrays verwerken en gegevens uitvoeren in een cellenreeks. De uitvoer is altijd dynamisch - wanneer er een wijziging optreedt in de brongegevens, worden de resultaten automatisch bijgewerkt. Vandaar de groepsnaam - dynamische matrixfuncties .

    Deze nieuwe functies kunnen gemakkelijk een aantal taken aan die traditioneel als moeilijk te kraken worden beschouwd. Zij kunnen bijvoorbeeld duplicaten verwijderen, unieke waarden extraheren en tellen, spaties uitfilteren, willekeurige gehele getallen en decimale getallen genereren, sorteren in oplopende of aflopende volgorde, en nog veel meer.

    Hieronder vindt u een korte beschrijving van wat elke functie doet en de links naar diepgaande tutorials:

    1. UNIEK - haalt unieke items uit een reeks cellen.
    2. FILTER - filtert gegevens op basis van de door u gedefinieerde criteria.
    3. SORT - sorteert een reeks cellen volgens een opgegeven kolom.
    4. SORTBY - sorteert een cellenreeks door een andere reeks of matrix.
    5. RANDARRAY - genereert een array van willekeurige getallen.
    6. SEQUENCE - genereert een lijst van opeenvolgende nummers.
    7. TEXTSPLIT - splitst strings door een opgegeven scheidingsteken over kolommen en/of rijen.
    8. TOCOL - een matrix of bereik converteren naar een enkele kolom.
    9. TOROW - een bereik of matrix omzetten in een enkele rij.
    10. WRAPCOLS - zet een rij of kolom om in een 2D-array op basis van het opgegeven aantal waarden per rij.
    11. WRAPROWS - verandert een rij of kolom in een 2D-array op basis van het opgegeven aantal waarden per kolom.
    12. TAKE - haalt een opgegeven aantal aaneengesloten rijen en/of kolommen uit het begin of einde van een matrix.

    Daarnaast zijn er twee moderne vervangers van de populaire Excel-functies, die niet officieel deel uitmaken van de groep, maar alle voordelen van dynamische matrices benutten:

    XLOOKUP - is een krachtigere opvolger van VLOOKUP, HLOOKUP en LOOKUP die zowel in kolommen als rijen kan opzoeken en meerdere waarden kan teruggeven.

    XMATCH - is een veelzijdigere opvolger van de MATCH-functie die verticale en horizontale lookups kan uitvoeren en een relatieve positie van het opgegeven item kan teruggeven.

    Excel dynamische matrixformules

    In moderne versies van Excel is het dynamische matrixgedrag diepgaand geïntegreerd en wordt het native voor alle functies Zelfs die welke oorspronkelijk niet waren ontworpen om met matrices te werken. Simpel gezegd, voor elke formule die meer dan één waarde retourneert, creëert Excel automatisch een aanpasbaar bereik waarin de resultaten worden uitgevoerd. Dankzij deze mogelijkheid kunnen de bestaande functies nu toveren!

    De onderstaande voorbeelden tonen de nieuwe dynamische matrixformules in actie en het effect van dynamische matrices op bestaande functies.

    Voorbeeld 1. Nieuwe dynamische matrixfunctie

    Dit voorbeeld toont aan hoeveel sneller en eenvoudiger een oplossing kan worden bereikt met de dynamische arrayfuncties van Excel.

    Om een lijst van unieke waarden uit een kolom te halen, gebruikt u traditioneel een complexe CSE-formule zoals deze. In dynamisch Excel hebt u alleen een UNIEKE formule in zijn basisvorm nodig:

    =UNIQUE(B2:B10)

    U voert de formule in een lege cel in en drukt op Enter. Excel haalt onmiddellijk alle verschillende waarden uit de lijst en voert ze uit in een cellenbereik dat begint bij de cel waar u de formule hebt ingevoerd (D2 in ons geval). Wanneer de brongegevens veranderen, worden de resultaten automatisch herberekend en bijgewerkt.

    Voorbeeld 2. Verschillende dynamische matrixfuncties combineren in één formule

    Als er geen manier is om een taak te volbrengen met één functie, keten dan een paar functies aan elkaar! Bijvoorbeeld, om gegevens te filteren op basis van voorwaarde en de resultaten alfabetisch te rangschikken, wikkel de functie SORT om FILTER als volgt:

    =SORT(FILTER(A2:C13, B2:B13=F1, "Geen resultaten"))

    Waarbij A2:C13 de brongegevens zijn, B2:B13 de te controleren waarden en F1 het criterium.

    Voorbeeld 3. Nieuwe dynamische matrixfuncties gebruiken in combinatie met bestaande functies

    Aangezien de nieuwe berekeningsmotor die in Excel 365 is geïmplementeerd conventionele formules gemakkelijk kan omzetten in arrays, staat niets u in de weg om nieuwe en oude functies met elkaar te combineren.

    Om bijvoorbeeld te tellen hoeveel unieke waarden er zijn in een bepaald bereik, nestelt u de dynamische arrayfunctie UNIQUE in de goede oude COUNTA:

    =COUNTA(UNIQUE(B2:B10))

    Voorbeeld 4. Bestaande functies ondersteunen dynamische arrays

    Als u in een oudere versie zoals Excel 2016 of Excel 2019 een bereik van cellen aan de TRIM-functie levert, zal deze een enkel resultaat opleveren voor de eerste cel:

    =TRIM(A2:A6)

    In dynamisch Excel verwerkt dezelfde formule alle cellen en geeft meerdere resultaten, zoals hieronder getoond:

    Voorbeeld 5. VLOOKUP-formule om meerdere waarden terug te geven

    Zoals iedereen weet, is de VLOOKUP-functie ontworpen om een enkele waarde terug te geven op basis van de kolomindex die u opgeeft. In Excel 365 kunt u echter een array van kolomnummers opgeven om overeenkomsten uit verschillende kolommen terug te geven:

    =VLOOKUP(F1, A2:C6, {1,2,3}, FALSE)

    Voorbeeld 6. Eenvoudige TRANSPOSE-formule

    In vroegere Excel versies liet de syntaxis van de TRANSPOSE functie geen ruimte voor fouten. Om gegevens in je werkblad te roteren, moest je de oorspronkelijke kolommen en rijen tellen, hetzelfde aantal lege cellen selecteren maar de oriëntatie veranderen (een verbijsterende operatie in enorme werkbladen!), een TRANSPOSE formule typen in het geselecteerde bereik, en op Ctrl + Shift + Enter drukken om het correct af te ronden. Oef!

    In dynamisch Excel voert u gewoon de formule in de meest linkse cel van het uitvoerbereik in en drukt u op Enter:

    =TRANSPOSE(A1:B6)

    Klaar!

    Morsbereik - één formule, meerdere cellen

    De morsbereik is een cellenbereik dat de waarden bevat die een dynamische matrixformule oplevert.

    Wanneer een cel in het morsbereik wordt geselecteerd, verschijnt de blauwe rand om aan te geven dat alles daarin wordt berekend door de formule in de cel linksboven. Als u de formule in de eerste cel verwijdert, zijn alle resultaten verdwenen.

    Het morsbereik is echt een geweldig ding dat het leven van Excel-gebruikers een stuk eenvoudiger maakt. Voorheen moesten we met CSE-arrayformules raden naar hoeveel cellen we ze moesten kopiëren. Nu voert u gewoon de formule in de eerste cel in en laat Excel voor de rest zorgen.

    Opmerking: als andere gegevens het spill-bereik blokkeren, treedt een #SPILL-fout op. Zodra de blokkerende gegevens zijn verwijderd, is de fout verdwenen.

    Voor meer informatie, zie Excel morsbereik.

    Referentie morsbereik (# symbool)

    Om naar het morsbereik te verwijzen, zet u een hashtag of pondsteken (#) achter het adres van de cel linksboven in het bereik.

    Als u bijvoorbeeld wilt weten hoeveel willekeurige getallen de formule RANDARRAY in A2 genereert, geeft u de verwijzing naar het spill-bereik aan de functie COUNTA:

    =COUNTA(A2#)

    Om de waarden in het morsbereik op te tellen, gebruikt u:

    =SUM(A2#)

    Tips:

    • Om snel naar een overlooibereik te verwijzen, selecteert u met de muis alle cellen binnen het blauwe vak en Excel maakt het overlooibereik voor u aan.
    • In tegenstelling tot een gewone bereikreferentie is de morsbereikreferentie dynamisch en reageert zij automatisch op het aanpassen van het bereik.
    • Voor meer details, zie Spill range operator.

      Impliciete kruising en @ teken

      In dynamic array Excel is er nog een belangrijke wijziging in de formule taal - de invoering van het @ teken, bekend als het impliciete snijoperator .

      In Microsoft Excel, impliciete kruising is een formulegedrag dat vele waarden reduceert tot één waarde. In het oude Excel kon een cel slechts één waarde bevatten, dus dat was het standaardgedrag en er was geen speciale operator voor nodig.

      In het nieuwe Excel worden alle formules standaard beschouwd als matrixformules. De impliciete snijoperator wordt gebruikt om het matrixgedrag te voorkomen als u dat niet wilt in een specifieke formule. Met andere woorden, als u wilt dat de formule slechts één waarde retourneert, zet u @ voor de naam van de functie, en deze zal zich gedragen als een niet-arrayformule in het traditionele Excel.

      Om te zien hoe het in de praktijk werkt, kunt u de onderstaande schermafbeelding bekijken.

      In C2 is er een dynamische matrixformule die resultaten morst in vele cellen:

      =UNIQUE(A2:A9)

      In E2 wordt de functie voorafgegaan door het teken @ dat impliciete doorsnijding oproept. Als resultaat wordt alleen de eerste unieke waarde geretourneerd:

      =@UNIQUE(A2:A9)

      Voor meer informatie, zie Impliciete kruising in Excel.

      Voordelen van dynamische arrays in Excel

      Ongetwijfeld zijn dynamische matrices een van de beste verbeteringen van Excel in jaren. Zoals elke nieuwe functie hebben ze sterke en zwakke punten. Gelukkig voor ons zijn de sterke punten van de nieuwe dynamische matrixformules van Excel overweldigend!

      Eenvoudig en krachtiger

      Dynamische matrices maken het mogelijk om op een veel eenvoudigere manier krachtigere formules te maken. Hier zijn een paar voorbeelden:

      • Trek unieke waarden: traditionele formules
      • Unieke en afzonderlijke waarden tellen: traditionele formules
      • Kolommen alfabetisch sorteren: traditionele formules

      Inheems voor alle formules

      In dynamisch Excel hoeft u zich niet druk te maken over welke functies arrays ondersteunen en welke niet. Als een formule meerdere waarden kan retourneren, doet hij dat standaard. Dit geldt ook voor rekenkundige bewerkingen en oude functies, zoals in dit voorbeeld wordt gedemonstreerd.

      Geneste dynamische matrixfuncties

      Om oplossingen uit te werken voor complexere taken, staat het u vrij de nieuwe dynamische matrixfuncties van Excel te combineren of ze samen met oude functies te gebruiken, zoals hier en hier wordt getoond.

      Relatieve en absolute verwijzingen zijn minder belangrijk

      Dankzij de aanpak "één formule, vele waarden" is het niet nodig om bereiken met het $-teken te vergrendelen, omdat de formule technisch gezien in slechts één cel staat. Voor het grootste deel maakt het dus niet echt uit of u absolute, relatieve of gemengde celverwijzingen gebruikt (wat altijd een bron van verwarring is geweest voor onervaren gebruikers) - een dynamische matrixformule zal hoe dan ook correcte resultaten opleveren!

      Beperkingen van dynamische arrays

      Nieuwe dynamische arrays zijn geweldig, maar zoals bij elke nieuwe functie zijn er een paar beperkingen en overwegingen waar u rekening mee moet houden.

      De resultaten kunnen niet op de gebruikelijke manier worden gesorteerd

      Het morsbereik dat wordt geretourneerd door een dynamische matrixformule kan niet worden gesorteerd met behulp van de sorteerfunctie van Excel. Een dergelijke poging zal resulteren in de " U kunt een deel van een matrix niet wijzigen " fout. Om de resultaten te rangschikken van kleinst naar grootst of omgekeerd, wikkel je je huidige formule in de functie SORT. Zo kun je bijvoorbeeld in één keer filteren en sorteren.

      Kan geen enkele waarde in het morsbereik verwijderen

      Geen van de waarden in een spill-bereik kan worden verwijderd om dezelfde reden: u kunt een deel van een matrix niet wijzigen. Dit gedrag wordt verwacht en is logisch. Traditionele CSE-matrixformules werken ook op deze manier.

      Worden niet ondersteund in Excel-tabellen

      Deze functie (of bug?) is nogal onverwacht. Dynamische matrixformules werken niet binnen Excel-tabellen, alleen binnen gewone bereiken. Als u probeert een morsbereik om te zetten in een tabel, doet Excel dat wel. Maar in plaats van de resultaten ziet u alleen een #SPILL! foutmelding.

      Niet werken met Excel Power Query

      De resultaten van dynamische matrixformules kunnen niet worden geladen in Power Query. Als u bijvoorbeeld twee of meer spill-bereiken probeert samen te voegen met Power Query, zal dit niet werken.

      Dynamische arrays vs. traditionele CSE-arrayformules

      Met de invoering van dynamische arrays kunnen we spreken van twee soorten Excel:

      1. Dynamische Excel die dynamische matrices, functies en formules volledig ondersteunt. Momenteel zijn het alleen Excel 365 en Excel 2021.
      2. Excel , aka traditionele of pre-dynamische Excel, waar alleen Ctrl + Shift + Enter array formules worden ondersteund. Het gaat om Excel 2019, Excel 2016, Excel 2013 en eerdere versies.

      Het spreekt voor zich dat dynamische arrays in alle opzichten superieur zijn aan CSE-arrayformules. Hoewel de traditionele arrayformules om compatibiliteitsredenen behouden blijven, wordt vanaf nu aanbevolen de nieuwe te gebruiken.

      Dit zijn de belangrijkste verschillen:

      • Een dynamische matrixformule wordt ingevoerd in één cel en voltooid met een gewone Enter-toets. Om een ouderwetse matrixformule te voltooien, moet u op Ctrl + Shift + Enter drukken.
      • Nieuwe matrixformules worden automatisch naar veel cellen gekopieerd. CSE-formules moeten naar een reeks cellen worden gekopieerd om meerdere resultaten op te leveren.
      • De uitvoer van dynamische matrixformules wordt automatisch aangepast als de gegevens in het bronbereik veranderen. CSE-formules beknotten de uitvoer als het retourgebied te klein is en retourneren fouten in extra cellen als het retourgebied te groot is.
      • Een dynamische matrixformule kan gemakkelijk in een enkele cel worden bewerkt. Om een CSE-formule te wijzigen, moet u het hele bereik selecteren en bewerken.
      • Het is niet mogelijk rijen in een CSE-formulebereik te verwijderen en in te voegen - u moet eerst alle bestaande formules verwijderen. Met dynamische matrices is het invoegen of verwijderen van rijen geen probleem.

      Achterwaartse compatibiliteit: dynamische matrices in oude Excel-versie

      Wanneer u een werkmap opent die een dynamische matrixformule bevat in het oude Excel, wordt deze automatisch geconverteerd naar een conventionele matrixformule omsloten door {curly braces}. Wanneer u het werkblad opnieuw opent in het nieuwe Excel, worden de accolades verwijderd.

      In oudere Excel worden de nieuwe dynamische matrixfuncties en morsbereikverwijzingen voorafgegaan door _xlfn om aan te geven dat deze functionaliteit niet wordt ondersteund. Een teken voor morsbereikverwijzingen (#) wordt vervangen door de functie ANCHORARRAY.

      Hier ziet u bijvoorbeeld hoe een UNIQUE-formule verschijnt in Excel 2013 :

      De meeste dynamische matrixformules (maar niet alle!) blijven hun resultaten in legacy Excel weergeven totdat u er wijzigingen in aanbrengt. Het bewerken van een formule breekt deze onmiddellijk af en geeft één of meer #NAME? foutwaarden weer.

      Excel dynamische matrixformules werken niet

      Afhankelijk van de functie kunnen verschillende fouten optreden als u een onjuiste syntaxis of ongeldige argumenten gebruikt. Hieronder staan de 3 meest voorkomende fouten die u kunt tegenkomen bij een dynamische matrixformule.

      #FOUT!

      Wanneer een dynamische array meerdere resultaten geeft, maar iets het morsbereik blokkeert, treedt een #SPILL! fout op.

      Om de fout op te lossen, hoeft u alleen maar alle cellen in het morsbereik die niet helemaal leeg zijn te wissen of te verwijderen. Om snel alle cellen die in de weg zitten te vinden, klikt u op de foutindicator en vervolgens op Selecteer belemmerende cellen .

      Naast een niet-leeg morsbereik kan deze fout door een paar andere redenen worden veroorzaakt. Zie voor meer informatie:

      • Excel #SPILL fout - oorzaken en oplossingen
      • Hoe #SPILL! fout op te lossen met VLOOKUP, INDEX MATCH, SUMIF

      #REF! fout

      Vanwege de beperkte ondersteuning voor externe verwijzingen tussen werkmappen, vereisen dynamische matrices dat beide bestanden geopend zijn. Als de bronwerkmap gesloten is, wordt een #REF! fout weergegeven.

      #NAME? fout

      Er treedt een #NAME? fout op wanneer u een dynamische matrixfunctie probeert te gebruiken in een oudere versie van Excel. Vergeet niet dat de nieuwe functies alleen beschikbaar zijn in Excel 365 en Excel 2021.

      Als deze fout optreedt in ondersteunde Excel versies, controleer dan dubbel de naam van de functie in de problematische cel. De kans is groot dat deze verkeerd getypt is :)

      Dat is hoe u dynamische arrays kunt gebruiken in Excel. Hopelijk vindt u deze fantastische nieuwe functionaliteit geweldig! Hoe dan ook, ik dank u voor het lezen en hoop u volgende week op onze blog te zien!

    Michael Brown is een toegewijde technologieliefhebber met een passie voor het vereenvoudigen van complexe processen met behulp van softwaretools. Met meer dan tien jaar ervaring in de technische industrie heeft hij zijn vaardigheden in Microsoft Excel en Outlook, evenals Google Spreadsheets en Documenten aangescherpt. Michael's blog is gewijd aan het delen van zijn kennis en expertise met anderen, met eenvoudig te volgen tips en tutorials voor het verbeteren van de productiviteit en efficiëntie. Of je nu een doorgewinterde professional of een beginner bent, Michaels blog biedt waardevolle inzichten en praktisch advies om het meeste uit deze essentiële softwaretools te halen.