Excelkurs online

I Excelbloggen tar vi upp funktioner och tips i Excel som är bra att känna till och underlättar vardagen för dig.

Funktionen LET för att skapa egna parametrar

I följande exempel skall vi ta reda på sista vardagendagen i en månad. Vi kommer bland annat att göra det med en nästlad OM-formel som vi skall korta ned med formeln LET() eftersom den formeln tillåter oss att skapa egna parametrar.

Vi kommer även att använda formlerna SLUTMÅNAD() som tar fram det sista datumet för en given månad. Vi kommer även att använda formeln VECKODAG() för att ta reda på vilken veckodag det sista datumet i en månad är. Formeln VECKODAG() returnerar en siffra där 1 står för måndag och 7 står för söndag. Om det sista datumet i en månad är en söndag får vi resultatet 7. Vi behöver då subtrahera 2 dagar från det datumet för att få fram en fredag (5) som då blir månadens sista vardag. Då sista datumet en månad är en lördag (6) subtraherar vi 1 dag för att få fram månadens sista vardag. Är det sista datumet en månad inte en helgdag så låter vi det datumet vara.

Vårt resultat ser ut som i tabellen nedan. Du kan ladda ner exempelfil under inläggets rubrik.



I kolumn A har vi först ett startdatum i A2 under den så bygger vi vår SLUTMÅNAD() funktion som använder sig av siffrorna i kolumn B för antalet månader som skall läggas till ifrån startdatumet i A2. Formeln blir:


A3: =SLUTMÅNAD($A$2;B3)


I kolumn C redovisas veckodags numret i kolumn A med formeln:


C2: =VECKODAG(A2;2) –> (Vi använder oss av inställningen med en 2:a för att den skall räkna med måndag=1 och söndag=7.)


I kolumn D och E har vi Sista arbetsdag 1 och Sista arbetsdag 2. Dessa två formler räknar ut samma sak på samma sätt med en nästlad OM-formel fast med två olika tekniker. Den första använder sig av en vanlig allt-i-en-formel och den andra använder sig av formeln LET().


Den första blir:

Sista arbetsdag 1 (D2):

=OM(VECKODAG(SLUTMÅNAD($A$2;B2);2)=7;

SLUTMÅNAD($A$2;B2)-2;

OM(VECKODAG(SLUTMÅNAD($A$2;B2);2)=6;

SLUTMÅNAD($A$2;B2)-1;

SLUTMÅNAD($A$2;B2)))


Den andra blir: 

Sista arbetsdag 2 (E2):

=LET(

Slutmånad;SLUTMÅNAD($A$2;B2);

Veckodag;VECKODAG(Slutmånad;2);

OM(Veckodag=7;

Slutmånad-2;

OM(Veckodag=6;

Slutmånad-1;

Slutmånad)))


Den andra versionen där vi använder oss av formeln LET() blir enklare att överskåda och även att skapa framförallt då vi har långa formler.

Det första vi gör med formeln LET() är att först skapa våra parametrar. Definiera ett namn1 och sedan följt av ett namnvärde1. Därefter skapar vi en beräkning_eller_namn2, följt av ett valfritt namnvärde2. Sedan kan vi fortsätta så med beräkning_eller_namn3, 4 osv.


Vad vi gjort är följande:

namn1:  Slutmånad

namnvärde1: SLUTMÅNAD($A$2;B2)

beräkning_eller_namn2: Veckodag

namnvärde2: VECKODAG(Slutmånad;2)

beräkning_eller_namn3: OM(Veckodag=7;Slutmånad-2;OM(Veckodag=6;Slutmånad-1;Slutmånad))

 

Först definierar vi våra två parametrar Slutmånad och Veckodag. Notera att parametern Slutmånad även används i beräkningen av Veckodag. De är förtydligade i rött och grönt. Sedan i den sista raden beräkning_eller_namn3 har vi den nästlade OM-formeln som motsvarar hela uttrycket i Sista arbetsdag 1.

När vi använder formeln LET() så kan vi skapa våra egna parametrar som vi sedan kan använda i vår beräkning. Det blir på så sätt mycket enklare att skriva komplicerade långa formler. Det är betydligt enklare att förstå LET-formelns nästlade OM-formel jämfört med den klassiska.


OM(Veckodag=7;Slutmånad-2;OM(Veckodag=6;Slutmånad-1;Slutmånad))


Vilket även motsvarar:


OM(VECKODAG(SLUTMÅNAD($A$2;B2);2)=7;SLUTMÅNAD($A$2;B2)-2;OM(VECKODAG(SLUTMÅNAD($A$2;B2);2)=6;SLUTMÅNAD($A$2;B2)-1;SLUTMÅNAD($A$2;B2)))


Till exempel blir de här uttrycken nedan som motsvarar varandra väldigt mycket enklare att läsa när man skriver formeln LET().


Veckodag = VECKODAG(SLUTMÅNAD($A$2;B2);2)


Det blir även mer lättläst eftersom uttrycket SLUTMÅNAD($A$2;B2) används i ett annat syfte så det blir väldigt svårt att hålla isär de två uttrycken.


DELA