Arbeta med VBA-funktioner som returnerar en array i Excel 2016

Matrisformler är en av Excels mest kraftfulla funktioner. Om du är bekant med matrisformler kommer du gärna att veta att du kan skapa VBA-funktioner som returnerar en matris.

Returnerar en rad månadsnamn

Låt oss börja med ett enkelt exempel. Funktionen MonthNames returnerar en array med 12 element av — du gissade rätt — månadsnamn.

Funktion MonthNames()
  MonthNames = Array("januari", "februari", "mars", _
   "april", "maj", "juni", "juli", "augusti", _
   "September oktober november december")
Avsluta funktion

För att använda funktionen MonthNames i ett kalkylblad måste du ange den som en 12-cells matrisformel. Välj till exempel intervall A2:L2 och ange =MonthNames() . Tryck sedan på Ctrl+Skift+Enter för att ange matrisformeln i alla 12 markerade celler. Kolla in resultatet.

Arbeta med VBA-funktioner som returnerar en array i Excel 2016

Använda funktionen MonthNames för att returnera en array med 12 element.

Om du vill att månadsnamnen ska visas i en kolumn, välj 12 celler i en kolumn och använd denna matrisformel. (Glöm inte att ange den genom att trycka på Ctrl+Skift+Enter.)

=TRANSPOSE(Månadsnamn())

Du kan också välja ut en enda månad från arrayen. Här är en formel (inte en matrisformel) som visar det fjärde elementet i matrisen: April.

=INDEX(Månadsnamn(),4)

Returnerar en sorterad lista

Anta att du har en lista med namn som du vill visa i sorterad ordning i ett annat cellområde. Skulle det inte vara trevligt att ha en kalkylbladsfunktion som gör det åt dig?

Den här anpassade funktionen gör just det: Den tar ett cellintervall med en kolumn som argument och returnerar sedan en array av dessa celler sorterade. Område A2:A13 innehåller några namn. Område C2:C13 innehåller denna flercellsmatrisformel. (Kom ihåg att du måste ange formeln genom att trycka på Ctrl+Skift+Enter.)

Arbeta med VBA-funktioner som returnerar en array i Excel 2016

Använda en anpassad funktion för att returnera ett sorterat intervall.

=Sorterad(A2:A13)

Här är koden för den sorterade funktionen:

Funktion sorterad (Rng som intervall)
  Dim SortedData() som variant
  Dim cell som intervall
  Dim Temp As Variant, i As Long, j As Long
  Dim ej tom så länge
' Överför data till SortedData
  För varje cell i Rng
    Om inte är tom (cell) då
      NonEmpty = NonEmpty + 1
      ReDim Bevara sorterad data (1 till icke-tom)
      SortedData(NonEmpty) = Cell.Value
    Avsluta om
  Nästa cell
' Sortera arrayen
  För i = 1 Till Ej Tom
    För j = i + 1 till icke-tom
      Om SortedData(i) > SortedData(j) Då
        Temp = SortedData(j)
        SortedData(j) = SortedData(i)
        SortedData(i) = Temp
      Avsluta om
    Nästa j
  Nästa i
' Transponera arrayen och returnera den
  Sorterad = Application.Transpose(SortedData)
Avsluta funktion

Sorted-funktionen börjar med att skapa en array som heter SortedData. Denna array innehåller alla icke-blanka värden i argumentintervallet. Därefter sorteras SortedData-matrisen med hjälp av en bubbelsorteringsalgoritm. Eftersom arrayen är en horisontell array måste den transponeras innan den returneras av funktionen.

Den sorterade funktionen fungerar med ett intervall av vilken storlek som helst, så länge den finns i en enda kolumn eller rad. Om den osorterade informationen är i en rad måste din formel använda Excels TRANSPOSE-funktion för att visa den sorterade datan horisontellt. Till exempel:

=TRANSPOSERA(Sorterat(A16:L16))

Leave a Comment

Hur man använder kommandona Gör om och upprepa i Word 2016

Hur man använder kommandona Gör om och upprepa i Word 2016

Lär dig att använda kommandona Gör om och Upprepa i Word 2016 för att effektivt hantera dina dokument. Dessa funktioner hjälper dig att enkelt ångra och återställa ändringar.

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows

Hur man blockerar Microsoft Word från att öppna filer i skrivskyddat läge på Windows Microsoft Word öppnar filer i skrivskyddat läge, vilket gör det omöjligt att redigera dem? Oroa dig inte, metoderna finns nedan

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Hur man åtgärdar felaktig utskrift av Microsoft Word-dokument

Så här åtgärdar du fel vid utskrift av felaktiga Microsoft Word-dokument Fel vid utskrift av Word-dokument med ändrade teckensnitt, röriga stycken, saknad text eller förlorat innehåll är ganska vanligt. Men gör det inte

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Radera ritningar med penna och överstrykningspenna på dina PowerPoint-bilder

Om du har använt pennan eller överstrykningspennan för att rita på dina PowerPoint-bilder under en presentation, kan du spara ritningarna till nästa presentation eller radera dem så att nästa gång du visar den börjar du med rena PowerPoint-bilder. Följ dessa instruktioner för att radera ritningar med penna och överstrykningspenna: Radera linjer ett på […]

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteksinnehåll i SharePoint 2010

Stilbiblioteket innehåller CSS-filer, XSL-filer (Extensible Stylesheet Language) och bilder som används av fördefinierade mallsidor, sidlayouter och kontroller i SharePoint 2010. För att hitta CSS-filer i stilbiblioteket på en publiceringswebbplats: Välj Webbplatsåtgärder→Visa Allt webbplatsinnehåll. Innehållet på webbplatsen visas. Style-biblioteket ligger i […]

Formatera siffror i tusentals och miljoner i Excel-rapporter

Formatera siffror i tusentals och miljoner i Excel-rapporter

Överväldiga inte din publik med gigantiska siffror. I Microsoft Excel kan du förbättra läsbarheten för dina instrumentpaneler och rapporter genom att formatera dina siffror så att de visas i tusentals eller miljoner.

Hur man delar och följer SharePoint-webbplatser

Hur man delar och följer SharePoint-webbplatser

Lär dig hur du använder SharePoints sociala nätverksverktyg som låter individer och grupper kommunicera, samarbeta, dela och ansluta.

Hur man konverterar datum till Julian-format i Excel

Hur man konverterar datum till Julian-format i Excel

Julianska datum används ofta i tillverkningsmiljöer som en tidsstämpel och snabbreferens för ett batchnummer. Denna typ av datumkodning tillåter återförsäljare, konsumenter och serviceagenter att identifiera när en produkt tillverkades och därmed produktens ålder. Julianska datum används också i programmering, militären och astronomi. Annorlunda […]

Hur man skapar en Access Web App

Hur man skapar en Access Web App

Du kan skapa en webbapp i Access 2016. Så vad är en webbapp egentligen? Tja, webben betyder att den är online, och appen är bara en förkortning för "applikation". En anpassad webbapp är en onlinedatabasapplikation som nås från molnet med en webbläsare. Du bygger och underhåller webbappen i skrivbordsversionen […]

Snabbstartsfält i SharePoint 2010

Snabbstartsfält i SharePoint 2010

De flesta sidor i SharePoint 2010 visar en lista med navigeringslänkar i snabbstartsfältet till vänster på sidan. Snabbstartsfältet visar länkar till utvalt webbplatsinnehåll som listor, bibliotek, webbplatser och publiceringssidor. Snabbstartsfältet innehåller två mycket viktiga länkar: Länken Allt webbplatsinnehåll: […]