Skapa dynamisk lista med formeln SEKVENS
I följande inlägg skall vi använda oss av formeln SEKVENS()
för att skapa en dynamisk lista så lägger till X antal månader framåt i tiden
ifrån dagens månad.
Du kan ladda ner exempelfil under inläggets rubrik.
Den här tekniken kan vara användbar på många områden om man
vill ha en dynamisk lista med datum eller något annat.
Vi börjar med att enkelt demonstrera funktionen SEKVENS.
Skriv in Formeln =SEKVENS(10;1;1;1)
Formeln har fyra argument
Rader: Är det enda som är obligatoriskt och anger hur
många rader som skall returneras.
Kolumner: Hur många kolumner som skall returneras
Start: Startvärdet som området som angavs av de två
första argumenten skall fyllas ifrån.
Steg: Stegen som området som skall fyllas med utifrån startvärdet i det tredje argumentet.
I formeln ovan anges att vi skall fylla 10 rader i 1
kolumn startar ifrån 1 och varje steg plussas med 1.
Vi ändrar i formeln i det tredje argumentet Start till
formeln IDAG() som är dynamiskt och anger dagens datum.
Vi får då formeln =SEKVENS(10;1;IDAG();1)
Efter det att vi formaterat till datum får vi resultatet enligt bilden nedan där vi får en lista som lägger till en dag ifrån dagens datum (26 sep 2022).
För att skapa en sekvens som räknar efter månad så bygger vi
in den i en DATUM() formel som kräver argumenten får År, Månad och Dag.
Vi lägger då in vår SEKVENS formel som argumentet som månad som
nedan.
=DATUM(
ÅR(IDAG()); <-
ÅR
SEKVENS(10;1;MÅNAD(IDAG());1) <-Månad
;1 <-Dag
)
Vi får då resultatet enligt bilden nedan.
För att göra funktionen mer användarvänlig har jag även kapslat in den i en SORTERA formel och gjort att flera av ingångsvärdena är referenser som i bilden nedan.
Månader: Är referens till argumentet rader, dvs antal
månader som skall listas upp.
Framåt/Bakåt: är argumentet steg och här kan man välja
1 eller -1. Om man väljer -1 så listas månaderna bakåt i tiden.
Sortering: 1 eller -1 bestämmer i vilken ordning man
vill att sorteringen skall vara.
Vill man inte ha sin lista i raderna utan i stället i sidledes
så kan man antingen i SEKVENS argumentet ange 1 i värdet för rader och sedan
ange flera kolumner istället för 1 som vi gjorde.
Det finns ett problem med det då det då inte går att sortera
listan i kolumner. Därför är det bättre att kapsla in vår befintliga formeln med
funktionen TRANSPONERA().
=TRANSPONERA(SORTERA(DATUM(ÅR(IDAG());SEKVENS(B1;1;MÅNAD(IDAG());B2);1);;B3))