Just nu i M3-nätverket
Gå till innehåll
MH_

LÖST Funktionen LET

Rekommendera Poster

MH_

Hej. Det verkar som om  LET kommer att bli en permanent funktion i Excel.

 

LET() låter oss skapa "variabler" i en formel. Det kan vara ett värde eller ett område. I vissa formler skapar man samma område eller värde gång på gång.  Men LET behöver man bara skapa det en gång och hänvisar till namnet. 

 

LET(

Variabelnamn1;Definitionen på variabel1;

Variabelnamn2;Definitionen på variabel2;

En formel som använder Variabelnamnen)

 

Är det någon som kan komma på några vettiga exempel? i Eforum har vi ofta klagat på att den här möjligheten saknas. Men jag kan inte komma på något exempel så att man kan skriva in det i "Nyheter". Det står stilla i mitt huvud

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Mikael63
På 2020-09-24 på 18:20, skrev MH_:

Det står stilla i mitt huvud

I mitt huvud står det som du kanske vet stilla hela tiden, särskilt vad gäller Excel & VBA...

En tanke som dock tycks ha frigjorts från det stillastående:

 

På 2020-09-24 på 18:20, skrev MH_:

Men LET behöver man bara skapa det en gång och hänvisar till namnet. 

Kan det inte vara så att man man i början av en kod vill att LET ska vara en sak "LET A = kalle" men senare vill att just A ska vara något annat?

Om det är torsdag låt A vara 4, om det är måndag låt A vara 1, och att man sedan bara behöver jobba med A...

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_
Postad (redigerade)

Nja. om kalle skall variera i "LET A=kalle" så kan man lika gärna fixa det med en direktlänk, eller i ditt exempel VÄXLA()

 

Ett meningslöst exempel.

Let(Område1;A1:A10;summa(område1))

Där kan man kanske tjäna lite om  SUMMA() är en samling formler som använder område1 (eller ett värde) flera gånger , och om definitionen av värdet/området är krångligt.

 

En idiotformel som kollar medelvärdet för de tal som är större än medianen i området (det finns säkert något statistiskt knorr när det är intressant).

Här ropar man på området 3 ggr.

=MEDEL.OM(A1:A46;">"&MEDIAN(A1:A46);A1:A46)

Man tjänar inget på att skriva "Område1" istället för "A1:A46"

Men om område1 skapas på ett krångligt sätt kanske det blir intressant

 

Så här brukade vi t.ex skapa dynamiska områden förr i tiden (när man inte vet hur lång data-tabellen kommer att vara):

=FÖRSKJUTNING($A$1;0;0;ANTAL(A:A))

Det här blir kanske inte enklare att läsa:

=Let(område1;FÖRSKJUTNING($A$1;0;0;ANTAL(A:A));MEDEL.OM(område1;">"&MEDIAN(område1);område1))

Istället för

=MEDEL.OM(FÖRSKJUTNING($A$1;0;0;ANTAL(A:A));">"&MEDIAN(FÖRSKJUTNING($A$1;0;0;ANTAL(A:A)));FÖRSKJUTNING($A$1;0;0;ANTAL(A:A)))

Dessutom skapas område1 bara en gång och beräkningarna blir mycket snabbare.

 

Problemet är att det är ett idiotexempel. Det här exempel - och alla andra exempel jag kommer på - går att lösa så smidigt på andra sätt idag (istället för ett dynamiskt området i mitt exempel skulle man idag använda en tabellreferens eller möjligen hela kolumn A eftersom excel har blivit bättre på att ignorera tomma områden).

 

Så hur tusan gör man ett vettigt exempel som inte låter konstgjort? Microsofts exempel är ju totalkrystat (dessutom saknas översatta formler)

https://support.microsoft.com/sv-se/office/funktionen-let-34842dd8-b92b-4d3f-b325-b8b8f9908999

Redigerad av MH_
obergripligt

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_
Postad (redigerade)

Självklart har Leila förklarat pedagogiskt. Varför kollade jag inte där själv??.

Det såg bra ut fram till reklampausen i alla fall. Resten är säkert lika bra.

Redigerad av MH_

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Monshi

Jag kommer på ett enkelt exempel

Vi har en komplex summa. =PRODUKTSUMMA((A1:a10>1)*(B1:B10<0)*C1:C10))

Men vi vill visa "Hola bandola, det blev noll" om det blir noll och resultatet annars.

Då kan nog LET skapa en härlig röra av formler som ger det resultat man vill i en cell.

 

 

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
MH_

Du menar ersätta någonting i stil med:

Om(PRODUKTSUMMA((A1:a10>1)*(B1:B10<0)*C1:C10))>0;PRODUKTSUMMA((A1:a10>1)*(B1:B10<0)*C1:C10));"Hola bandola, det blev noll")

med:

=LET(X;PRODUKTSUMMA((A1:A10>1)*(B1:B10<0)*C1:C10);OM(X>0;X;"Hola bandola, det blev noll"))

?

Jo, det är ju ett bra exempel på när man "tjatar" produktsumman/Summa.omf flera gånger.  Hade det varit 100 000 rader istället för 10 rader så borde man tjäna rätt mycket på att bara behöva beräkna det en gång, även om jag tycker att läsbarhetsvinsten är "sådär" om man inte radbryter (och Microsoft har fortfarande inte fixat så att man kan använda [fx]-knappen när man kör radbrutna formler). 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...