Funkcja LET lub ZEZWALAJ (w zależności od wersji Excela) to następna z wielu dużych zmian w działaniu Excela. Choć w najnowszych wersjach Excela dostępna jest od prawie dwóch lat to nadal bardzo niewiele osób o niej słyszało. Szkoda, bo dla zaawansowanych użytkowników ta funkcja może być zbawienna w uproszczeniu wielu skomplikowanych formuł. Pisałem już rewolucyjnych nowościach w Excelu jak formuły tablicowe czy nowe typy danych. Funkcja LET też się w to wpisuje.
Zastosowanie funkcji LET-ZEZWALAJ
Funkcja LET – ZEZWALAJ pozwala nam wprowadzić zmienne do naszych obliczeń wewnątrz jednej komórki. Tyle że nie mamy tu na myśli zmiennych jako odwołania do zewnętrznych komórek przechowujących wartości. W tym przypadku określamy nazwy zmiennych i przypisujemy lub wyliczamy ich wartość, a następnie te zmienne możemy wykorzystać w dalszej części formuły. Jest to działanie bardzo zbliżone do programowania. Najpierw deklarujemy zmienne, następnie przypisujemy im wartość a na końcu używamy ich w obliczeniach.
Niektóre zadania wymagają od użytkownika pisania bardzo długich formuł, które zajmują wiele linijek albo rozbijania obliczeń na wiele komórek. Choć drugie rozwiązanie jest bardziej czytelne to znacznie zwiększa czas obliczeń oraz wielkość pliku niż jedna wielka formuła. Wielka formuła jest zazwyczaj mało czytelna i może zawierać kilkukrotnie użyty ten sam fragment obliczeń. Szczególnie jeżeli sposób obliczeń zależy od pewnych czynników. Na przykład, jeżeli wartość komórki jest taka to policz w taki sposób, jeżeli inna to licz inaczej, itd. W innym przypadku wymagane mogło być wielokrotne wyliczanie tej samej wartości. Dzięki funkcji LET – ZEZWALAJ możemy znacząco skrócić formuły oraz istotnie polepszyć jej czytelność.
Składnia funkcji LET – ZEZWALAJ
Składnia funkcji LET – ZEZWALAJ jest prosta. Najpierw podajemy nazwę zmiennej, potem określamy jej wartość lub sposób wyliczenia. Następnie możemy tak samo określić kolejną zmienną. Ostatni parametr funkcji to obliczenia. W przejrzysty sposób prezentuje to grafika ze strony pomocy Microsoft.
Przykład jak o ponad połowę skrócić długą formułę
W jednym ze swoich wpisów pisałem, jak pracować z numerami PESEL. Najczęściej interesuje nas wyciągnięcie daty urodzenia. Jeśli chcemy, aby formuła działała dla osób zarówno urodzonych po 2000 roku jak i tych którzy mogli urodzić się przed 1900 to nasza formuła znacząco się rozrasta. Każde stulecie wymaga innego przekształcenia numerów na daty. Poniżej widok formuły dla losowo wygenerowanych numerów PESEL.

Pierwsze co rzuca się w oczy to to, że ciężko szybko określić jak ta formuła działa. Druga rzecz to kilkukrotne powtarzanie tych samych obliczeń. Najczęściej wyliczana jest wartość trzeciego i czwartego znaku w numerze PESEL, czyli numeru miesiąca, który jest zarówno wykorzystywany w sprawdzeniu warunku w formule JEŻELI jak i w utworzeniu daty. Niezależnie o które stulecie chodzi jest to zawsze wyliczane dwa razy.
Wykorzystamy funkcję LET – ZEZWALAJ najpierw do działań związanych z miesiącem. Zmienną nazwijmy „m”, a jej wartość to FRAGMENT.TEKSTU([@PESEL];3;2)*1. Używanie w nazwach zmiennych małych liter dodatkowo ułatwia czytanie całej formuły, ponieważ odróżniają się od nazw formuł. Po podmienieniu obliczeń dla miesiąca nasza formuła wygląda jak poniżej.

Kolejny fragment formuły który możemy podmienić to wyliczenie numerów dla roku. W formule LET – ZEZWALAJ dodajemy trzeci i czwarty parametr, czyli nazwa zmiennej r i LEWY([@PESEL];2)*1. Formuła skróciła się do tej postaci.

Na koniec pozostało zastąpienie obliczeń dla dnia. Na szczęścia funkcja LET – ZEZWALAJ pozwala nam utworzenie wielu zmiennych bez niepotrzebnego zagnieżdżania funkcji. Dodajemy zmienną d i jej wartość równą FRAGMENT.TEKSTU([@PESEL];5;2).

Dbając o estetykę i czytelność warto zapisać formułę w taki sposób, aby oddzielić tworzenie zmiennych od części obliczeniowej. Gdy obliczenia dzielą się na kolejne etapy lub są to obliczenia warunkowe to podział na kolejne linie jeszcze bardziej uprości jej widok.

Pierwotna formuła składała się z 370 znaków. Po użyciu funkcji LET – ZEZWALAJ została skrócona do 178 znaków. Oznacza to skrócenie jej o 52%. Myślę, że jest to silny argument, aby w takich sytuacjach zawsze korzystać z tej dostępnej od niedawna funkcji.
Korzyści z użycia funkcji LET – ZEZWALAJ
Zastępując pierwotną formułę na wyliczenia daty urodzenia na formułę z funkcją LET – ZEZWALAJ otrzymaliśmy dwie istotne korzyści:
- Optymalizacja obliczeń – pierwotnie Excel musiał zawsze dwa razy liczyć numer miesiąc, teraz liczony jest tylko raz. Przy bardziej skomplikowanych formułach wzrost efektywności będzie o wiele większy.
- Lepsza czytelność formuł – nie dość, że otrzymujemy znaczne skrócenie formuły to i jej czytanie jest o wiele prostsze. Gdy już wiem czym są nasze zmienne m, r i d to od razu wiemy, jak działają dalsze funkcje. Nie musimy za każdym razem sprawdzać jaki dokładnie fragment tekstu jest wyciągany i czy to dokładnie ten sam fragment, który był użyty gdzieś indziej.
Tego typu nowości w Excelu mogą znacząco zmienić naszą pracę. Nie tylko ułatwiają pracę, ale dają też zupełnie nowe możliwości. Dlatego warto śledzić nowości i stosować je w swojej pracy.
Możesz pobrać plik z przedstawionym przykładem poniżej
Zobacz również