Excel-formler som returnerar en uppsättning värden, även kallat en matris, returnerar dessa värde till närliggande celler. Det här beteendet kallas för spill.
Formler som kan returnera matriser med variabel storlek kallas dynamiska matrisformler . Formler som för närvarande returnerar matriser som har spillts kan kallas spillda matrisformler .
Här följer några anteckningar som hjälper dig att förstå och använda den här typen av formler.
Vad innebär spill?
Obs!: Äldre matrisformler, så kallade äldre matrisformler, returnerar alltid ett resultat med fast storlek – de spiller alltid i samma antal celler. Spillbeteendet som beskrivs i det här avsnittet gäller inte för äldre matrisformler.
Spill innebär att en formel har resulterat i flera värden och att dessa värden har placerats i de närliggande cellerna. Till exempel skulle =SORTERA(D2:D11,1,-1), som sorterar en matris i fallande ordning, returnera en motsvarande matris som är 10 rader hög. Men du behöver bara ange formeln i den övre vänstra cellen, eller F2 i det här fallet, så spills den automatiskt ned till cell F11.
Huvudpunkter
-
När du trycker på Retur för att bekräfta formeln kommer Excel dynamiskt att ändra utdataområdets storlek och placera resultatet i varje cell inom det området.
-
Om du skriver en dynamisk matrisformel för att agera på en lista med data kan det vara användbart att placera den i en Excel-tabell och sedan använda strukturerade referenser för att referera till data. Det beror på att strukturerade referenser justeras automatiskt när rader läggs till eller tas bort från tabellen.
-
Spillda matrisformler stöds inte i själva Excel-tabellerna, så du bör placera dem i rutnätet utanför tabellen. Tabeller passar bäst för att hålla rader och kolumner med oberoende data.
-
När du anger en spilld matrisformel placerar Excel en markerad kantlinje runt området när du markerar en cell i spillområdet. Kantlinjen försvinner när du markerar en cell utanför området.
-
Endast den första cellen i spillområdet kan redigeras. Om du markerar en annan cell i spillområdet visas formeln i formelfältet, men texten är "spöklik" och kan inte ändras. Om du behöver uppdatera formeln bör du markera cellen längst upp till vänster i matrisområdet, ändra den efter behov. Sedan uppdaterar Excel automatiskt resten av spillområdet åt dig när du trycker på Retur.
-
Formeln överlappar: det går inte att ange matrisformler om något blockerar området för utdata. och om detta händer returnerar Excel ett #SPILL!-fel som anger att det finns en blockering. Om du tar bort blockeringen kommer formeln att spilla som förväntat. I exemplet nedan överlappar formelns utdataområde ett annat område med data och visas med en prickad kantlinje överlappande celler med värden som anger att det inte kan spilla. Ta bort blockeringsdata eller kopiera dem någon annanstans så spills formeln som förväntat.
-
Äldre matrisformler som anges via CTRL+SKIFT+RETUR (CSE) stöds fortfarande av bakåtkompatibilitetsskäl, men bör inte längre användas. Om du vill kan du konvertera äldre matrisformler till dynamiska matrisformler genom att placera den första cellen i matrisområdet, kopiera formelns text, ta bort hela området i den äldre matrisen och sedan ange formeln i den övre vänstra cellen igen. Innan du uppgraderar äldre matrisformler till dynamiska matrisformler bör du vara medveten om vissa beräkningsskillnadermellan de två.
-
Excel har begränsat stöd för dynamiska matriser mellan arbetsböcker och detta scenario stöds endast när båda arbetsböckerna är öppna. Om du stänger källarbetsboken får du ett #REF!-felmeddelande för länkade dynamiska matrisformler när de uppdateras.
Behöver du mer hjälp?
Du kan alltid fråga en expert i Excel Tech Community eller få support i Communities.