Ynhâldsopjefte
Om te sjen hoe't it yn 'e praktyk wurket, sjoch asjebleaft de skermôfdruk hjirûnder.
Yn C2 is d'r in dynamyske arrayformule dy't resultaten yn in protte sellen spilet:
=UNIQUE(A2:A9)
Yn E2 is de funksje foarôfgeand oan mei it @-karakter dat ymplisite krusing opropt. As resultaat wurdt allinich de earste unike wearde weromjûn:
=@UNIQUE(A2:A9)
Foar mear ynformaasje sjoch asjebleaft Implisite krusing yn Excel.
Foardielen fan dynamyske arrays fan Excel
Sûnder mis binne dynamyske arrays ien fan 'e bêste Excel-ferbetterings yn jierren. Lykas elke nije funksje hawwe se sterke en swakke punten. Lokkich foar ús binne de sterke punten fan nije Excel dynamyske array-formules oerweldigjend!
Ienfâldich en machtiger
Dynamyske arrays meitsje it mooglik om op in folle ienfâldiger manier machtiger formules te meitsjen. Hjir binne in pear foarbylden:
- Unike wearden ekstrahearje: tradisjonele formules
Troch de revolúsjonêre fernijing yn 'e Excel 365-berekkeningsmotor wurde arrayformules heul ienfâldich en begryplik foar elkenien, net allinich foar superbrûkers. De tutorial ferklearret it konsept fan nije dynamyske arrays fan Excel en lit sjen hoe't se jo wurkblêden effisjinter meitsje kinne en in stik makliker yn te stellen.
Excel-arrayformules binne altyd beskôge as in prerogatyf fan goeroes en formules saakkundigen. As immen seit "Dit kin dien wurde mei in array formule", is in direkte reaksje fan in protte brûkers "Oh, is d'r net in oare manier?".
De ynfiering fan dynamyske arrays is in lang ferwachte en meast wolkom feroaring. Troch har fermogen om op in ienfâldige manier mei meardere wearden te wurkjen, sûnder trúkjes en eigenaardichheden, binne dynamyske array-formules iets dat elke Excel-brûker kin begripe en genietsje fan it meitsjen.
Excel dynamyske arrays
Dynamyske arrays binne oanpasbere arrays dy't automatysk berekkenje en wearden werombringe yn meardere sellen basearre op in formule ynfierd yn ien sel.
Troch mear as 30 jier skiednis, Microsoft Excel hat in protte feroaringen ûndergien, mar ien ding bleau konstant - ien formule, ien sel. Sels mei tradisjonele array-formules wie it nedich om in formule yn te fieren yn elke sel wêr't jo wolle dat in resultaat ferskynt. Mei dynamyske arrays is dizze regel net mear wier. No, elke formule dy't in array fan wearden werombringtnet dwaan. As in formule meardere wearden weromjaan kin, sil it dit standert dwaan. Dit jildt ek foar rekenkundige operaasjes en legacy funksjes lykas oantoand yn dit foarbyld.
Nêste dynamyske arrayfunksjes
Om oplossingen út te wurkjen foar kompleksere taken, binne jo frij om nije Excel dynamyske arrayfunksjes te kombinearjen of brûk se tegearre mei âlde lykas hjir en hjir werjûn.
Relative en absolute ferwizings binne minder wichtich
Tanksje de "ien formule, in protte wearden" oanpak, it is net nedich om te sluten berikt mei it $-teken, om't de formule technysk yn mar ien sel is. Dus, foar it grutste part makket it net echt út of jo absolute, relative of mingde selferwizings brûke (wat altyd in boarne fan betizing west hat foar sûnder ûnderfining brûkers) - in dynamyske arrayformule sil yn elk gefal juste resultaten produsearje!
Beheinings fan dynamyske arrays
Nije dynamyske arrays binne geweldich, mar lykas by elke nije funksje, binne d'r in pear warskôgings en oerwagings wêrfan jo bewust wêze moatte.
Resultaten kinne net sortearre wurde yn de gewoane manier
It spillberik dat weromjûn wurdt troch in dynamyske arrayformule kin net sortearre wurde mei de sortearjefunksje fan Excel. Elk sa'n besykjen sil resultearje yn de flater " Jo kinne gjin diel fan in array feroarje ". Om de resultaten te regeljen fan lyts nei grutste of oarsom, wrap jo hjoeddeistige formule yn 'e SORT-funksje. Sa kinne jo bygelyks filterjeen op ien kear sortearje.
Kin gjin wearde yn spillomradet wiskje
Gjin fan de wearden yn in spillomrade kin wiske wurde fanwege deselde reden: jo kinne gjin diel fan in array feroarje. Dit gedrach wurdt ferwachte en logysk. Tradisjonele CSE-arrayformules wurkje ek op dizze manier.
Wurde net stipe yn Excel-tabellen
Dizze funksje (of brek?) is frij ûnferwachts. Dynamyske array-formules wurkje net fanút Excel-tabellen, allinich binnen reguliere berik. As jo besykje in spillomradet te konvertearjen nei in tabel, sil Excel dat dwaan. Mar ynstee fan de resultaten sille jo allinich in #SPILL sjen! flater.
Net wurkje mei Excel Power Query
De resultaten fan dynamyske arrayformules kinne net yn Power Query laden wurde. Sis, as jo besykje om twa of mear spillbereiken tegearre mei Power Query te fusearjen, sil dit net wurkje.
Dynamyske arrays tsjin tradisjonele CSE-arrayformules
Mei de ynfiering fan dynamyske arrays, wy kinne prate oer twa soarten Excel:
- Dynamyske Excel dat dynamyske arrays, funksjes en formules folslein stipet. Op it stuit is it allinich Excel 365 en Excel 2021.
- Legacy Excel , aka tradisjoneel of pre-dynamysk Excel, wêrby't allinich Ctrl + Shift + Enter arrayformules wurde stipe. It is Excel 2019, Excel 2016, Excel 2013 en eardere ferzjes.
It seit himsels dat dynamyske arrays yn alle opsichten superieur binne oan CSE-arrayformules. Hoewol't de tradisjonele arrayformules wurde bewarre foar kompatibiliteitsredenen, fan no ôf is it oan te rieden om de nije te brûken.
Hjir binne de meast essensjele ferskillen:
- In dynamyske arrayformule wurdt ynfierd yn ien sel en foltôge mei in reguliere Enter toetsoanslag. Om in âlderwetske arrayformule te foltôgjen, moatte jo op Ctrl + Shift + Enter drukke.
- Nije arrayformules spielje automatysk nei in protte sellen. CSE-formules moatte kopiearre wurde nei in berik fan sellen om meardere resultaten werom te jaan.
- De útfier fan dynamyske array-formules feroaret automatysk as de gegevens yn it boarneberik feroaret. CSE formules truncate de útfier as it weromkommen gebiet is te lyts en werom flaters yn ekstra sellen as it werom gebiet is te grut.
- In dynamyske array formule kin maklik bewurke yn ien sel. Om in CSE-formule te feroarjen, moatte jo it hiele berik selektearje en bewurkje.
- It is net mooglik om rigen yn in CSE-formuleberik te wiskjen en yn te foegjen - jo moatte earst alle besteande formules wiskje. Mei dynamyske arrays is it ynfoegjen of wiskjen fan rigen gjin probleem.
Backward komptabiliteit: dynamyske arrays yn legacy Excel
As jo in wurkboek iepenje mei in dynamyske arrayformule yn âlde Excel, it wurdt automatysk omboud ta in konvinsjonele array formule ynsletten yn {curly braces}. As jo it wurkblêd opnij iepenje yn nije Excel, sille de krullende beugels fuortsmiten wurde.
Yn legacy Excel, de nije dynamyske arrayfunksjes en referinsjes foar spillberik krije foarôfgeand mei _xlfn om oan te jaan dat dizze funksjonaliteit net stipe wurdt. In spill range ref teken (#) wurdt ferfongen troch de ANCHORARRAY funksje.
Bygelyks, hjir is hoe't in UNIEKE formule ferskynt yn Excel 2013 :
De measte dynamyske array-formules (mar net allegear!) sille har resultaten yn legacy Excel werjaan oant jo feroaringen oanmeitsje. It bewurkjen fan in formule brekt it fuortendaliks en lit ien of mear #NAME sjen? flaterwearden.
Excel dynamyske array-formules wurkje net
Ofhinklik fan de funksje kinne ferskillende flaters foarkomme as jo in ferkearde syntaksis of ûnjildige arguminten brûke. Hjirûnder steane de 3 meast foarkommende flaters dy't jo mei elke dynamyske arrayformule tsjinkomme kinne.
#SPILL! flater
As in dynamyske array meardere resultaten jout, mar iets blokkearret it spillbereik, dan sil in #SPILL! error occurs.
Om de flater te reparearjen, moatte jo gewoan alle sellen yn it spillbereik wiskje of wiskje dy't net folslein leech binne. Om fluch alle sellen te finen dy't yn 'e wei komme, klikje jo op de flateryndikator en klikje dan op Selektearje blokkearjende sellen .
Apart from a non- lege spillomrade, dizze flater kin wurde feroarsake troch in pear oare redenen. Sjoch foar mear ynformaasje:
- Excel #SPILL-flater - oarsaken en reparaasjes
- Hoe reparearje #SPILL! flater mei VLOOKUP, INDEX MATCH, SUMIF
#REF! flater
Fanwegende beheinde stipe foar eksterne referinsjes tusken wurkboeken, dynamyske arrays fereaskje dat beide bestannen iepen binne. As de boarne wurkboek is sletten, in #REF! flater wurdt werjûn.
#NAME? flater
A #NAME? flater komt foar as jo besykje in dynamyske array-funksje te brûken yn in âldere ferzje fan Excel. Unthâld dat de nije funksjes allinnich beskikber binne yn Excel 365 en Excel 2021.
As dizze flater ferskynt yn stipe Excel-ferzjes, kontrolearje dan de namme fan de funksje yn de problematyske sel. De kâns is grut dat it ferkeard typt is :)
Dat is hoe't jo dynamyske arrays brûke yn Excel. Hooplik sille jo fan dizze fantastyske nije funksjonaliteit hâlde! Hoe dan ek, ik tankje jo foar it lêzen en hoopje jo nije wike op ús blog te sjen!
Lit my it konsept yllustrearje mei in heul basisfoarbyld. Stel dat jo twa groepen nûmers moatte fermannichfâldigje, bygelyks om ferskate persintaazjes te berekkenjen.
Yn pre-dynamyske ferzjes fan Excel soe de ûndersteande formule allinich wurkje foar de earste sel, útsein as jo dizze yn meardere ynfiere sellen en druk op Ctrl + Shift + Enter om it eksplisyt in arrayformule te meitsjen:
=A3:A5*B2:D2
Sjoch no wat der bart as deselde formule brûkt wurdt yn Excel 365. Jo typ it yn mar ien sel (B3 yn ús gefal), druk op de Enter-kaai ... en hawwe de hiele grime yn ien kear fol mei de resultaten:
Fill meardere sellen mei ien formule hjit spilling , en it befolke berik fan sellen wurdt it spillbereik neamd.
In wichtich ding om te notearjen is dat de resinte fernijing net allinich in nije manier is. fan it behanneljen fan arrays yn Excel. Yn feite is dit in baanbrekkende feroaring foar de hiele berekkeningsmotor. Mei dynamyske arrays binne in boskje nije funksjes tafoege oan 'e Excel Function Library en de besteande begon rapper en effektiver te wurkjen. Uteinlik moatte nije dynamyske arrays de âlderwetske arrayformules folslein ferfange dy't ynfierd wurde mei deCtrl + Shift + Enter fluchtoets.
Beskikberens fan dynamyske arrays fan Excel
Dynamyske arrays waarden yntrodusearre op de Microsoft Ignite Conference yn 2018 en frijjûn oan Office 365-abonnees yn jannewaris 2020. Op it stuit binne se beskikber yn Microsoft 365-abonneminten en Excel 2021.
Dynamyske arrays wurde stipe yn dizze ferzjes:
- Excel 365 foar Windows
- Excel 365 foar Mac
- Excel 2021
- Excel 2021 foar Mac
- Excel foar iPad
- Excel foar iPhone
- Excel foar Android-tablets
- Excel foar Android-tillefoans
- Excel foar it web
Excel dynamyske arrayfunksjes
As ûnderdiel fan 'e nije funksjonaliteit waarden 6 nije funksjes yntrodusearre yn Excel 365 dy't arrays natuerlik behannelje en gegevens útfiere yn in berik fan sellen. De útfier is altyd dynamysk - as elke feroaring bart yn 'e boarnegegevens, wurde de resultaten automatysk bywurke. Dêrfandinne de groepsnamme - dynamyske arrayfunksjes .
Dizze nije funksjes kinne maklik omgean mei in oantal taken dy't tradisjoneel beskôge wurde as hurde nuten om te kraken. Se kinne bygelyks duplikaten fuortsmite, unike wearden útpakke en telle, blanken filterje, willekeurige heule getallen en desimale getallen generearje, sortearje yn oprinnende of ôfnimmende folchoarder, en in protte mear.
Hjirûnder fine jo in koarte beskriuwing fan wat elke funksje docht, lykas de keppelings nei yngeande tutorials:
- UNIQUE - ekstrahearje unike items út inberik fan sellen.
- FILTER - filteret gegevens basearre op de kritearia dy't jo definiearje.
- SORT - sortearret in berik fan sellen troch in spesifisearre kolom.
- SORTBY - sortearret in berik fan sellen troch in oar berik of array.
- RANDARRAY - genereart in array fan willekeurige nûmers.
- SEQUENCE - genereart in list mei opienfolgjende nûmers.
- TEXTSPLIT - splitst strings troch in spesifisearre skiedingsteken oer kolommen of/en rigen.
- TOCOL - konvertearje in array of berik nei ien kolom.
- TOROW - transformearje in berik of array yn ien rige.
- WRAPCOLS - konvertearret in rige of kolom yn in 2D-array basearre op it opjûne oantal wearden per rigel.
- WRAPROWS - feroaret in rige of kolom yn in 2D-array basearre op it opjûne oantal wearden per kolom .
- TAKE - ekstrahearret in spesifisearre oantal oanienkommende rigen en/of kolommen út it begjin of ein fan in array.
Dêrneist binne der twa moderne ferfangings fan de populêre Excel-funksjes , dy't net offisjeel yn 'e groep, mar leverag e alle foardielen fan dynamyske arrays:
XLOOKUP - is in machtiger opfolger fan VLOOKUP, HLOOKUP en LOOKUP dy't sawol yn kolommen as rigen opsykje kin en meardere wearden weromjaan kinne.
XMATCH - is in mear alsidige opfolger fan de MATCH-funksje dy't fertikale en horizontale opsykjen útfiere kin en in relative posysje fan it opjûne item weromjaan kin.
Excel dynamyske arrayformules
Inmoderne ferzjes fan Excel, it dynamyske arraygedrach is djip yntegreare en wurdt native foar alle funksjes , sels dyjingen dy't oarspronklik net ûntwurpen binne om te wurkjen mei arrays. Om it gewoan te sizzen, foar elke formule dy't mear dan ien wearde werombringt, makket Excel automatysk in oanpasber berik wêryn de resultaten wurde útfierd. Troch dit fermogen kinne de besteande funksjes no magy útfiere!
De ûndersteande foarbylden litte nije dynamyske arrayformules yn aksje sjen en ek it effekt fan dynamyske arrays op besteande funksjes.
Foarbyld 1. Nije dynamyske arrayfunksje
Dit foarbyld lit sjen hoefolle flugger en ienfâldiger in oplossing kin wurde berikt mei Excel dynamyske arrayfunksjes.
Om in list mei unike wearden út in kolom te heljen, soene jo tradisjoneel brûk in komplekse CSE-formule lykas dizze. Yn dynamyske Excel is alles wat jo nedich binne in UNIEKE formule yn syn basisfoarm:
=UNIQUE(B2:B10)
Jo fiere de formule yn yn elke lege sel en druk op Enter. Excel ekstrakt fuortendaliks alle ferskillende wearden yn 'e list en útfiert se yn in berik fan sellen dy't begjinne fan' e sel wêr't jo de formule ynfierd hawwe (D2 yn ús gefal). As de boarne gegevens feroarje, wurde de resultaten opnij berekkene en automatysk bywurke.
Foarbyld 2. Ferskate dynamyske arrayfunksjes kombinearje yn ien formule
As der gjin manier om in taak mei ien funksje út te fieren, ketting in pear byinoar! FoarBygelyks, om gegevens te filterjen op basis fan betingst en de resultaten alfabetysk te regeljen, wrap de SORT-funksje om FILTER sa:
=SORT(FILTER(A2:C13, B2:B13=F1, "No results"))
Wêr't A2:C13 de boarnegegevens binne, B2:B13 de boarnegegevens binne. wearden om te kontrolearjen, en F1 is it kritearium.
Foarbyld 3. It brûken fan nije dynamyske arrayfunksjes tegearre mei besteande
As de nije berekkeningsmotor ymplementearre yn Excel 365 kin konvinsjonele formules maklik omsette yn arrays, d'r is neat dat jo foarkomme om nije en âlde funksjes tegearre te kombinearjen.
Om bygelyks te tellen hoefolle unike wearden der binne yn in bepaald berik, nêst de dynamyske array UNIEKE funksje yn it goede âlde COUNTA:
=COUNTA(UNIQUE(B2:B10))
Foarbyld 4. Besteande funksjes stypje dynamyske arrays
As jo in berik fan leverje sellen nei de TRIM-funksje yn in âldere ferzje lykas Excel 2016 of Excel 2019, sil it ien resultaat weromjaan foar de earste sel:
=TRIM(A2:A6)
Yn dynamysk Excel ferwurket deselde formule alle fan de sellen en werom meardere resultaten, lykas hjirûnder werjûn:
Foarbyld 5. VLOOKUP-formule om meardere wearden werom te jaan
Sa't elkenien wit, is de VLOOKUP-funksje ûntworpen om ien inkelde werom te jaan wearde basearre op de kolom yndeks dy't jo oantsjutte. Yn Excel 365 kinne jo lykwols in array fan kolomnûmers leverje om wedstriden werom te jaan út ferskate kolommen:
=VLOOKUP(F1, A2:C6, {1,2,3}, FALSE)
Foarbyld 6. TRANSPOSE formule makkeeasy
Yn eardere Excel-ferzjes liet de syntaksis fan 'e TRANSPOSE-funksje gjin romte foar flaters. Om gegevens yn jo wurkblêd te rotearjen, moasten jo de orizjinele kolommen en rigen telle, itselde oantal lege sellen selektearje, mar de oriïntaasje feroarje (in ferrassende operaasje yn enoarme wurkblêden!), Typ in TRANSPOSE-formule yn it selekteare berik, en druk op Ctrl + Shift + Enter om it korrekt te foltôgjen. Phew!
Yn dynamysk Excel, fiere jo gewoan de formule yn 'e lofterste sel fan it útfierberik en druk op Enter:
=TRANSPOSE(A1:B6)
Klear!
Spillberik - ien formule, meardere sellen
It spillberik is in berik fan sellen dy't de wearden befettet dy't weromjûn binne troch in dynamyske arrayformule.
As in sel yn it spillbereik is selektearre, ferskynt de blauwe râne om te sjen dat alles dêryn wurdt berekkene troch de formule yn 'e sel linksboppe. As jo de formule yn 'e earste sel wiskje, sille alle resultaten fuort wêze.
It spillberik is in echt geweldich ding dat it libben fan Excel-brûkers in stik makliker makket . Earder, mei CSE-arrayformules, moasten wy riede hoefolle sellen se nei kopiearje moasten. No, jo ynfiere gewoan de formule yn 'e earste sel en lit Excel soargje foar de rest.
Opmerking. As guon oare gegevens it spillbereik blokkearje, bart in #SPILL-flater. Sadree't de obstructing gegevens is fuortsmiten, de flater sil wêze fuort.
Sjoch foar mear ynformaasjeExcel-spielberik.
Referinsje fan spillberik (# symboal)
Om te ferwizen nei it spillberik, set in hash-tag of pûnsymboal (#) efter it adres fan de sel linksboppe yn it berik.
Om bygelyks te finen hoefolle willekeurige getallen wurde generearre troch de RANDARRAY-formule yn A2, leverje de ferwizing nei de COUNTA-funksje:
=COUNTA(A2#)
Om de wearden yn it spillbereik op te tellen, brûk:
=SUM(A2#)
Tips:
- Om fluch te ferwizen nei in spillbereik, selektearje gewoan alle sellen yn it blauwe fak mei de mûs, en Excel sil de spillref foar jo meitsje.
- Oars as in gewoane berikferwizing is de spillbereikref dynamysk en reagearret op it feroarjen fan it berik automatysk.
Foar mear details, sjoch asjebleaft Spylberikoperator.
Ymplisite krusing en @-karakter
Yn dynamyske array Excel is der noch ien wichtige feroaring yn 'e formuletaal - de ynfiering fan it @-karakter, bekend as de implisite krusingsoperator .
Yn Microsoft Excel, ymplisite krusing is in formulegedrach dat in protte wearden ferminderet ta ien wearde. Yn âlde Excel koe in sel mar ien wearde befetsje, dus dat wie it standertgedrach en dêr wie gjin spesjale operator foar nedich.
Yn nije Excel wurde alle formules standert as arrayformules beskôge. De ymplisite krusingsoperator wurdt brûkt om it arraygedrach te foarkommen as jo net wolle