Nowa w Excelu 365 funkcja LET służy, jak to w różnych językach programowania, do zdefiniowania zmiennej dla innej funkcji.
Po co? Żeby 1) wyeliminować redundantne obliczenia (występujące wielokrotnie – niepotrzebnie), oraz 2) uczynić formułę bardziej czytelną (i łatwiejszą do napisania).
Ogólna postać jest następująca:
LET(zmienna1; wartość; [opcjonalnie więcej takich par, max 126;] obliczenie)
Proste przykłady formuł, mało praktyczne jeszcze:
=LET(x; 5; x*2)
=LET(a;A1; b;A2; c;A3; x;B1; a*x^2+b*x+c)
Każdej zmiennej „wartość” to niekoniecznie wartość wpisana z klawiatury, czy adres komórki – może to być złożone obliczenie i tu tkwi siła LET, ale o tym zaraz.
Ostatni parametr – obliczenie: może to być złożona formuła, z funkcjami, no i oczywiście korzystamy tu z wprowadzonych zmiennych.
Przykład 1: podanemu w A1 pracownikowi chcemy doliczyć premię 10% ale tylko dla wartości pensji (znalezionej w ewidencji) powyżej 5000, czyli opisowo:
=JEŻELI( ZnajdźPensjęPracownika>5000; (ZnajdźPensjęPracownika-5000)*10%; 0)
Gdy ewidencję pensji mamy w C1:D100, to będzie coś jak:
=JEŻELI(WYSZUKAJ.PIONOWO(A1;C1:D100;2;FAŁSZ)>5000; (WYSZUKAJ.PIONOWO(A1;C1:D100;2;FAŁSZ)-5000)*10%; 0)
Formuła zadziała, ale te dwa wystąpienia funkcji WYSZUKAJ.PIONOWO….. A z LET:
=LET(pensja;WYSZUKAJ.PIONOWO(A1;C1:D100;2;FAŁSZ); JEŻELI(pensja>5000;(pensja-5000)*10%;0))
Formuła powyższa z LET może niewiele krótsza w zapisie, ale za to bardziej czytelna (i szybsza w działaniu).
Przykład więc 2, z przypadkiem znaczącego skrócenia formuły:
W kolumnie C mamy nazwiska osób, a obok w D wyniki ich osiągnięć.
W komórce A1 jest wpisane jedno nazwisko z listy. Dla tej jednej osoby chcemy widzieć jej osiągnięcie słownie: ujemny/zero/mało/dużo (mało, to np. mniej niż 1000). Dwa sposoby bez LET:
Stara, znana funkcja JEŻELI:
=JEŻELI(WYSZUKAJ.PIONOWO(A1; C1:D5; 2; FAŁSZ)<0; „ujemny”; JEŻELI(WYSZUKAJ.PIONOWO(A1; C1:D5; 2; FAŁSZ)=0; „zero”; JEŻELI(WYSZUKAJ.PIONOWO(A1; C1:D5; 2; FAŁSZ)<1000; „mało”; „dużo”)))
Nowa, lepsza tu WARUNKI:
=WARUNKI(WYSZUKAJ.PIONOWO(A1; C1:D5; 2; FAŁSZ)<0; „ujemny”; WYSZUKAJ.PIONOWO(A1; C1:D5; 2; FAŁSZ)=0; „zero”; WYSZUKAJ.PIONOWO(A1; C1:D5; 2; FAŁSZ)<1000; „mało”; 1=1; „dużo”)
Nie da się uniknąć tego czerwonego szukania 3 razy osiągnięcia pracownika. W praktyce zwykle szukamy to raz, w pomocniczej komórce.
Ale po co, skoro mamy teraz LET:
=LET(w;WYSZUKAJ.PIONOWO(A1;C1:D5;2;FAŁSZ); WARUNKI(w<0; „ujemny”; w=0; „zero”; w<1000; „mało”; 1;”dużo”))
Wcześniej LET można było (i można nadal) osiągnąć definiując nazwę odwołującą się do formuły w Menedżerze Nazw, ale obliczenia nie było widać w formule. Zaleta zdefiniowanej nazwy jest jednak taka, że ma zasięg całego arkusza lub skoroszytu i można jej używać wszędzie, a nazwy zmiennych w LET mają zasięg wąski bardzo: użyć ich możemy tylko w tej jednej formule z LET.
No i to tyle o LET. Scenariuszy użycia i ułatwienia życia jest więcej, bo LET można zagnieżdżać, stosować wyrażenia tablicowe, dodawać je w LAMBDA.